这可能非常简单,但我无法解决此代码的问题:
$sql = mysql_query("select * from Temporary_Stock_Transfer where Emp_ID = '$emp_id' and Company_ID = '$company_id'");
if(mysql_num_rows($sql) == 0) {
echo "<tr><td colspan='3'><i>You currenty have no items</i></td></tr>";
}else {
while($row = mysql_fetch_array($sql)) {
echo mysql_num_rows($sql);
echo 'reached';
$book_id = $row[1];
$sql = mysql_fetch_row(mysql_query("select title from Book where Book_ID = '$book_id'"));
echo "<tr><td>".$sql[0]."</td><td>".$row[2]."</td><td><span class='label label-important'>Remove</span></td></tr>";
}
}
现在基于我的数据库,查询返回2个结果,echo mysql_num_rows($sql)
也给出2
。然而,达成的协议只得到一次回应。有人看到代码存在潜在问题吗?
p.S:我的错,$sql
正在重复,这是一个愚蠢的错误
由于以下行,它将只echo
一次:
$sql = mysql_fetch_row(mysql_query("select title from Book where Book_ID = '$book_id'"));
您覆盖$sql
变量。
为什么不只运行一个查询并连接所需的数据呢?
try($sql2
而不是$sql
,$sql[0]
到$sql2[0]
):
$sql = mysql_query("select * from Temporary_Stock_Transfer where Emp_ID = '$emp_id' and Company_ID = '$company_id'");
if(mysql_num_rows($sql) == 0) {
echo "<tr><td colspan='3'><i>You currenty have no items</i></td></tr>";
}else {
while($row = mysql_fetch_array($sql)) {
echo mysql_num_rows($sql);
echo 'reached';
$book_id = $row[1];
$sql2 = mysql_fetch_row(mysql_query("select title from Book where Book_ID = '$book_id'"));
echo "<tr><td>".$sql2[0]."</td><td>".$row[2]."</td><td><span class='label label-important'>Remove</span></td></tr>";
}
}
我认为这是因为您正在重新设置sql变量
$sql = mysql_fetch_row(mysql_query("select title from Book where Book_ID = '$book_id'"));
当您仍在while循环中使用它时。:P
可能是这行:
$sql = mysql_fetch_row(mysql_query("select title from Book where Book_ID = '$book_id'"));
请尝试使用其他变量名。
您正在更改循环中的$sql变量,因此下次运行$row=mysql_fetch_array($sql)时,该值将有所不同(根据您的代码,可能不会有任何值)。
在while循环中,您正在使用相同的变量:$sql
。这用于控制循环的终止条件。
使用不同的变量名,例如$sql2
应保持原始变量不变,循环应按预期进行。