0

$row[product_name] の表示に問題がありますが、$row2['index'] はすべてのデータが表示されているように見えますが、空白と表示されています。ここで何が問題なのですか? または while ステートメントに 2 つのパラメーターを入れることは違法です。洞察はありますか?

$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/>';



    }
4

3 に答える 3

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>';
}  
于 2012-05-27T15:13:00.000 に答える
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 つのクエリでこれを実行できない理由はありますか?

于 2012-05-27T15:12:12.157 に答える
0

これのポイントは何ですか:

$product_name = $row["product_name"];

$row["product_name"] を直接使用するだけです。

ループに入る前にこれもチェックしてください:

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

行数は同じですか?それ以外の場合は、@Umbrella の言うことになります。

于 2012-05-27T15:21:01.360 に答える