将多个主要Mysql表检索到html表(php)的最佳方法是什么

时间:2016-08-23 13:11:47

标签: php mysql mysqli query-optimization

我是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个主键。但这个概念几乎与上面的例子相同。

1 个答案:

答案 0 :(得分:0)

在循环外部,使用SELECT执行ORDER BY。让循环获取行。请注意,它会按照已指定的顺序获取它们,因此您不需要那么混乱的if