PHP:用AJAX格式化MySQL中的数据有几种方法

PHP:用AJAX格式化MySQL中的数据有几种方法,php,mysql,ajax,Php,Mysql,Ajax,到目前为止,我已经看到了两种格式化从MySQL数据库检索到的数据的方法 两种代码的快速摘要: 当使用Ajax函数调用打开检索MySQL数据的php文件时,它应该在同一个php文件中处理MySQL数据,还是在打开所述php文件的Ajax函数中处理从php文件返回的数据 我相信的第一种方式是我在教程中看到的最常见的方式,它看起来像这样 PHP文件 while ($row = mysqli_fetch_row($result)){ echo "<p class='group_name'>

到目前为止,我已经看到了两种格式化从MySQL数据库检索到的数据的方法

两种代码的快速摘要: 当使用Ajax函数调用打开检索MySQL数据的php文件时,它应该在同一个php文件中处理MySQL数据,还是在打开所述php文件的Ajax函数中处理从php文件返回的数据

我相信的第一种方式是我在教程中看到的最常见的方式,它看起来像这样

PHP文件

while ($row = mysqli_fetch_row($result)){
  echo "<p class='group_name'>" . $row[0] . "</p>";
}
或者这是另一种方式。它首先使用ajax将数据发送到文件,使用split()string方法,在其中循环,再次使用split方法,然后使用HTML对其进行格式化

第二个PHP文件

$data = "";
while ($row = mysqli_fetch_row($result)){
  $data .= $row[0] . "|" . $row[1] . "|" . $row[2] . "||"; // adding | and || to be split later
}
使用AJAX的第二个文件

xmlhttp.onreadystatechange = function(){
 if(xmlhttp.readyState === 4 or xmlhttp.state === 200){
     document.getElementById('container').innerHTML = xmlhttp.responseText;
 }
}
xmlhttp.onreadystatechange = function(){
 if(xmlhttp.readyState === 4 or xmlhttp.state === 200){
     var data = "";
     var data_array = xmlhttp.responseText.split('||'); 

     for(var row = 0; row < data_array.length ;row++){
        var data_row = data_array[row].split('|'); // Taking each value in the array and splitting it again, this time by |
          data = "<p class='group_name'>" + data_row[0] + "</p><span>" + data_row[1] +
        "</span>"
     }
 }
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4或xmlhttp.state==200){
var数据=”;
var data|u array=xmlhttp.responseText.split(“| |”);
对于(变量行=0;行”+数据行[0]+”

“+数据行[1]+ "" } } }
哪种方法更好或更快?还是没关系?第二个首先发送的responseText只有数据,所以我想它可能会加快速度?然后在客户端完成HTML格式化


或者有更好的方法吗?

格式化应该在客户端完成,这样您就可以对站点的不同项目/页面重复使用相同的代码,服务器应该返回JSON对象

这也节省了带宽(对于移动设备来说非常重要),例如,如果我们使用您的第一个解决方案,并且我们有10万行,那么这些行中的每一行都有HTML格式,这是相当大的数据量


另外,这将允许您仅通过编辑页面而不触及服务器端代码来更改页面的设计。

您的意思是:在打开检索MySQL数据的php文件的Ajax函数调用中,您应该在同一个php文件中处理MySQL数据,还是在打开该php文件的Ajax函数中处理从php文件返回的数据?请查看php函数
json_encode()
;你给它传递一个数据数组,它输出一个JSON编码的对象,javascript可以直接处理。是的,这正是我的意思。也许我应该用你的方式问这个问题……它要简单得多。你介意我复制它并粘贴到我的问题上面吗?顺便说一下,我在php文件中处理。我的理由更平凡;如果我在php文件中检索数据,那么通过在php文件中处理数据,通过SELECT、INSERT等查询来跟踪数据会更容易。我也不必一直在php文件和javascript文件之间切换。为方便起见是有意义的。我还将检查json_encode()函数,它看起来很有前途。