我是爱好者,对于糟糕的代码感到抱歉..无论如何,我有一个表单,我可以选择5到50之间的值,并将这些值与$ pacote进行比较。对于$ pacote数据库中找到的每个不同的值,我想在我的html表中创建一个新行(" Pacote xx horas")",并在它所在的列中显示该值。 ; s应该出现。在我的示例图像中,我设置值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> </td>";
} // CLOSE ELSE //
} // CLOSE WHILE //
echo "</tr>";
} // CLOSE ELSE //
} // CLOSE WHILE //
} // CLOSE FOR //
答案 0 :(得分:0)
我认为您的问题是这一行if ($priceQuery = $pacote) {
这会将$pacote
的值分配给$priceQuery
,它总是会评估为true,因此'else'部分永远不会运行。< / p>
您需要一个双等于评估2个变量.. ..并且您正在使用查询$pacote
的结果评估递增数字$priceQuery
。这就是您的问题所在。猜测一下,我会说你需要类似的东西:
if ($row['Pacote1_horas'] == $pacote) {
此外,您可能不需要if (is_null($priceQuery)) {
测试..您的while循环遍历查询中的每个返回记录,因此没有多少点检查是NTLL,因为它永远不会。
最后,您应该考虑将mysql_*
函数更改为mysqli_*
,因为之前的方法已被弃用,并且容易受到SQL注入的攻击。</ p>