我无法显示$ row [product_name]它显示空白而$ row2 ['index']似乎正在查找所有数据正在显示,这似乎是什么问题?或者在while语句中放入两个参数是非法的,任何见解?
$sql = mysql_query("SELECT * FROM product_detail LIMIT 5") or die(mysql_error());
$sql2 = mysql_query("SELECT * FROM product LIMIT 5") or die(mysql_error());
if($sql && $sql2){
while($row = mysql_fetch_array($sql) && $row2 = mysql_fetch_array($sql2)){
$product_name = $row["product_name"]; echo $row["product_name"] ;
$product_id = $row2["product_id"];
$product_qty = $row2["balance_qty"];
$product_price = $row2["unit_price"];
echo ' <tr>
<td>'.$product_id.'</td>
<td>'.$product_name.'</td>
<td>'.$product_price.'</td>
<td>'.$product_qty.'</td>
</tr><br/>';
}
答案 0 :(得分:1)
使用类似代码的单一查询将让您重新回到游戏中:
$sql = "SELECT p.product_id, p.product_name, d.unit_price, d.balance_qty
FROM product AS p
JOIN product_detail AS d ON (d.product_id=p.product_id)
LIMIT 5";
$result =mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo ' <tr>
<td>'.$row['product_id'].'</td>
<td>'.$row['product_name'].'</td>
<td>'.$row['unit_price'].'</td>
<td>'.$row['balance_qty'].'</td>
</tr>';
}
答案 1 :(得分:0)
我相信你在这里有一个操作顺序(优先级)问题。尝试更改
while($row = mysql_fetch_array($sql) && $row2 = mysql_fetch_array($sql2)){
到
while(($row = mysql_fetch_array($sql)) && ($row2 = mysql_fetch_array($sql2))){
此外,如果在$sql
中看到$sql2
中的所有记录之前,$row2
中的记录用完,则循环将无法获取下一个{{1}}
此外,您是否有理由不能使用一个查询?
答案 2 :(得分:0)
有什么意义:
$product_name = $row["product_name"];
直接使用$ row [“product_name”]。
在进入循环之前也要检查一下:
echo "FIRST: ".mysql_num_rows($sql);
echo "SECOND: ".mysql_num_rows($sql2);
他们有相同的行数?否则,你会进入@Umbrella所说的。