Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在页面中构造数据库调用?_Php_Mysql_Database Design_Web Applications - Fatal编程技术网

Php 如何在页面中构造数据库调用?

Php 如何在页面中构造数据库调用?,php,mysql,database-design,web-applications,Php,Mysql,Database Design,Web Applications,好的,我对在页面中创建复杂的数据库结构还不熟悉。我有一个包含几个类别的基本人员表。学生、教师、家长和mods。还有一张表供家长、学生和教师/MOD使用。它基本上是一个学校的网站 现在举个例子,在个人资料页面中,学生的信息会显示给家长。诸如谁是老师、科目、出勤率、家庭作业等信息。这将查询许多表格。那么我最好的赌注是什么?我计划用一种网络应用程序的方式。我在想也许我可以用ajax将JSON数据发送到页面,让javascript来完成繁重的计算。所有表将只查询一次 那么这样做还可以吗?或者当我的脚陷得

好的,我对在页面中创建复杂的数据库结构还不熟悉。我有一个包含几个类别的基本人员表。学生、教师、家长和mods。还有一张表供家长、学生和教师/MOD使用。它基本上是一个学校的网站

现在举个例子,在个人资料页面中,学生的信息会显示给家长。诸如谁是老师、科目、出勤率、家庭作业等信息。这将查询许多表格。那么我最好的赌注是什么?我计划用一种网络应用程序的方式。我在想也许我可以用ajax将JSON数据发送到页面,让javascript来完成繁重的计算。所有表将只查询一次

那么这样做还可以吗?或者当我的脚陷得太深时,我会面临一些隐藏的问题吗?也许我可以再深入一层,制作一个巨大的JSON,将整个数据库发送给用户,然后缓存在浏览器中。我不必支持非常旧的浏览器:)

此外,每次都需要计算出勤率和分数/成绩。有没有办法缓存每个学生的结果?就像家长查看学生的成绩一样,它会计算一次,然后在服务器上缓存x天

编辑:

我能想到的另一种非JSON方法是传统方法。我用php在服务器端做所有事情。这意味着我不必担心浏览器的兼容性。也许我可以在开始时调用所有需要的表,并将其存储为数组。这样一来,表也只会被调用一次

编辑2


我在什么地方读到了《战场3》战地日志网站。它也是用同样的方法制作的。所有数据都使用JSON从服务器中提取,然后在客户端进行计算。如果这有助于正确看待我的想法。

可能是为了消除一些误解,但这与其说是一个答案,不如说是一个冗长的评论:

您的数据库有表和字段。这是完全正确的。数据库服务器的工作是存储数据并为您处理查询。在连接表方面,您自己的代码永远不会比数据库的代码更好。因为数据库服务器针对该任务进行了优化


因此,我认为查询所有数据并通过JSON将其放入您的webapp的想法是一个糟糕的想法。如果您需要特定数据,请联系您的服务器。服务器将生成相关的SQL查询,将其发送到数据库服务器,返回结果,将结果转换为JSON并发送回浏览器。

可能是为了消除一些误解,但这与其说是一个答案,不如说是一个冗长的评论:

您的数据库有表和字段。这是完全正确的。数据库服务器的工作是存储数据并为您处理查询。在连接表方面,您自己的代码永远不会比数据库的代码更好。因为数据库服务器针对该任务进行了优化


因此,我认为查询所有数据并通过JSON将其放入您的webapp的想法是一个糟糕的想法。如果您需要特定数据,请与服务器联系,服务器将构建相关的SQL查询,将其发送到数据库服务器,返回结果,将结果转换为JSON并发送回浏览器。

AJAX(异步Javascript和XML)只允许在绘制页面的主要部分后动态获取数据。在所有条件相同的情况下,将其设计为标准(获取数据然后绘制页面)布局可能会更容易。如果正确设计应用程序,则可以在页面呈现前或页面呈现后收集执行单个组件(出勤、教师、成绩等)的调用。走AJAX路线存在明显的安全问题(URL攻击),我个人设计了非AJAX,因为当事情开始变得复杂时,它不那么容易处理。

AJAX(异步Javascript和XML)只允许您在绘制页面的主要部分后动态地获取数据。在所有条件相同的情况下,将其设计为标准(获取数据然后绘制页面)布局可能会更容易。如果正确设计应用程序,则可以在页面呈现前或页面呈现后收集执行单个组件(出勤、教师、成绩等)的调用。走AJAX路线存在明显的安全问题(URL攻击),我个人设计了非AJAX,因为当事情开始发展时,它不那么容易出错。

总是存在隐藏的问题。通常有多种方法可以做到这一点。从要学的东西开始。我建议你要么从普通的PHP和mysql开始,要么如果你真的很喜欢JSON,那么就只使用couchdb和javascript。@hakre我在想JASON,因为javascript是我非常熟悉的东西。但不幸的是,我认为除了mysql之外,我无法使用任何其他数据库,因为这是我所知道的唯一数据库,这是生产代码。您正在考虑“JavaScript对象表示法”或“JSON”。@palsm4 agrrh这里是早上,我已经工作了一整晚。很抱歉总是有隐藏的问题。通常有多种方法可以做到这一点。从要学的东西开始。我建议你要么从普通的PHP和mysql开始,要么如果你真的很喜欢JSON,那么就只使用couchdb和javascript。@hakre我在想JASON,因为javascript是我非常熟悉的东西。但不幸的是,我认为除了mysql之外,我无法使用任何其他数据库,因为这是我所知道的唯一数据库,这是生产代码。您正在考虑“JavaScript对象表示法”或“JSON”。@palsm4 agrrh这里是早上,我已经工作了一整晚。很抱歉谢谢但是像计算结果这样的事情呢?这通常需要大量的计算,特别是在查看班级平均成绩时,因为每个问题都要加分数。所以