Php 无法显示来自SQL的数据,因此无法显示

Php 无法显示来自SQL的数据,因此无法显示,php,sql,Php,Sql,我在显示$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(m

我在显示$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/>';



    }
$sql=mysql\u query(“从产品详细信息限制5中选择*”)或die(mysql\u error());
$sql2=mysql\u query(“从产品限制5中选择*”)或die(mysql\u error());
如果($sql&&$sql2){
而($row=mysql\u-fetch\u数组($sql)&&$row2=mysql\u-fetch\u数组($sql2)){
$product_name=$row[“product_name”];echo$row[“product_name”];
$product_id=$row2[“product_id”];
$product_qty=$row2[“余额_qty”];
$product_price=$row2[“单价”];
回声'
“.$product_id”
“.$product_name”
“.$产品价格”
“.$product\U数量”

; }
我相信这里存在操作顺序(优先级)问题。请尝试更改

while($row = mysql_fetch_array($sql) && $row2 = mysql_fetch_array($sql2)){

此外,如果在看到
$sql2
中的所有记录之前,
$sql
中的记录已用完,则循环将不会获取下一个
$row2


还有,有什么原因不能用一个查询来完成吗?

用类似这样的代码进行一个查询可以让您重新投入游戏:

$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>';
}  
$sql=“选择p.product\u id、p.product\u名称、d.unit\u价格、d.balance\u数量
从乘积p
将产品详细信息作为d ON(d.product\U id=p.product\U id)加入
限制5”;
$result=mysql\u query($sql)或die(mysql\u error());
while($row=mysql\u fetch\u数组($result)){
回声'
“.$row['product_id']”
“.$row['product_name']”
“.$row[“单价”]”
“.$row[“余额数量”]”
';
}  

这有什么意义:

$product_name = $row["product_name"];
直接使用$row[“product_name”]即可

在进入循环之前,也要检查一下:

echo "FIRST: ".mysql_num_rows($sql);
echo "SECOND: ".mysql_num_rows($sql2);

它们的行数相同?否则,您将进入@umbrane所说的内容。

打印($row)查看它的内容。不-你应该在同一个while-loop中执行两个fetch_数组。请停止使用古老的mysql_*函数编写新代码。它们不再被维护,社区已经开始运行。相反,你应该学习准备好的语句并使用or。如果你想学习,.Valid point,但你仍然拥有sam迭代结果时出现问题,这似乎是造成问题的原因。您应该仔细阅读有关SQL联接的内容。除非您有一个非常werid的表结构,否则您可能只需要一个查询就可以做到这一点。
echo "FIRST: ".mysql_num_rows($sql);
echo "SECOND: ".mysql_num_rows($sql2);