我是php的新手,我想知道将mysql数据检索到html表的最佳方法。目前我无法提供格式良好的代码,因为我正在通过电话,但让我们说这个案例是这样的:
我有这个结构的mysql表:
Row -> PK
Column -> PK
Value
我有大约10个专栏和一个需要在网页上显示的dinamic行。
我的想法是循环一个小查询并回显它,或者将它存储在一个大数组中并快速扫描。
第一个想法:
For ($y = 0; $y < $rowCount; $y++){
Echo "<tr>";
For ($x = 0; $x < 10; x++){
$row = Mysqli_query($db,"SELECT Value FROM table WHERE Row='".$y."' AND Column='".$x."'");
$row = mysqli_fetch_assoc($row);
Echo "<td>".$row['Value']."<td>";
}
Echo "</tr>";
}
第二个想法:
$data = Mysqli_query($db,"SELECT * from Table");
For ($y = 0; $y < $rowCount; $y++){
Echo "<tr>";
For ($x = 0; $x < 10; $x++){
While($key = mysqli_fetch_assoc($data)){
If($key['Row']==$x && $key['Column']==$y)
Echo "<td>".$row['Value']."<td>";
}
}
Echo "</tr>";
}
很抱歉,如果我的语法错误,因为我在没有语法备忘单的情况下键入它,我的意思是告诉技术,而不是要求调试。
第一个想法是使用mysqli查询&#39; WHERE&#39;查找主要(行和列)。然后循环垃圾邮件。
第二个想法是将所有表结果存储在变量($ data)中,然后使用While循环继续扫描变量。
请注意,行数是dinamic,最多可以添加500个数据。这也是我考虑垃圾邮件查询而不是将所有内容存储在变量($ data)中的原因。但我也想知道垃圾邮件查询是不是最好的主意,因为该程序必须继续建立连接。
我希望有人能想出第三个想法。
在实际情况中,我的表格比这更复杂,并且包含大约5个主键。但这个概念几乎与上面的例子相同。
答案 0 :(得分:0)
在循环外部,使用SELECT
执行ORDER BY
。让循环获取行。请注意,它会按照已指定的顺序获取它们,因此您不需要那么混乱的if
。