繁体   English   中英

使用PHP从SQL生成HTML表

[英]Generating html table from SQL using PHP

我很热衷于糟糕的代码。无论如何,我有一个表格,可以选择5到50之间的值,然后将这些值与$ pacote进行比较。 对于在数据库中为$ pacote找到的每个不同值,我想在html表中创建一个新行(“ Pacote xx horas”),并在该值应显示的列中显示该值。值10(对于3个特定的html表列-> Aeroboero AB-115,Cessna 172K和Cessna 172SP)和25(对于1列)。这就是我得到的以及我想要得到的。我尝试了许多不同的方法,但运行了没主意!

示例图片: 在此处输入图片说明

... <more code above> ...

for ($pacote = 5; $pacote <= 50; $pacote = $pacote + 5) {

    $priceQuery = mysql_query("SELECT * FROM precos_hora WHERE Pacote1_horas = $pacote");
    $priceQuery1 = mysql_query("SELECT Pacote1_horas FROM precos_hora");

    while($row = mysql_fetch_assoc($priceQuery)) {

        if (is_null($priceQuery)) {
            echo "";
        } else {    
            echo "<tr>";
            echo "<td>Pacote ".$pacote." horas</td>";

            while($row = mysql_fetch_assoc($priceQuery1)) {

                if ($priceQuery = $pacote) {

                    echo "<td>R$ ".$row['Pacote1_horas']."</td>";
                } else {
                    echo "<td>&nbsp;</td>";

                } // CLOSE ELSE //
            } // CLOSE WHILE //

            echo "</tr>";

        } // CLOSE ELSE //
    } // CLOSE WHILE //
} // CLOSE FOR //

我认为您的问题是这一行if ($priceQuery = $pacote) {这会将$pacote的值分配给$priceQuery ,该值将始终为true,因此“ else”部分将永远不会运行。

您需要一个双$pacote来评估2个变量....并且您$pacote查询$priceQuery的结果来评估递增的数字$priceQuery 这是您的问题所在。 大概,我会说您需要以下内容:

if ($row['Pacote1_horas'] == $pacote) {

另外,您可能不需要if (is_null($priceQuery)) {循环循环查询中返回的每个记录,因此没有太多点检查是NTLL,因为它永远不会。

最后,您应该考虑将mysql_*函数更改为mysqli_* ,因为以前的方法现在已过时,并且容易受到SQL注入的攻击。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM