2012-05-27 59 views
0

我在顯示$ row [product_name]時顯示爲空,而$ row2 ['index']好像在做顯示所有數據正在顯示,似乎是這裏的問題?或者在while語句中添加兩個參數是非法的,有什麼見解?在顯示來自SQL的數據時遇到問題,它不會顯示

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



    } 
+1

做一個print_r($ row)來查看它的內容。不,你應該在同一個while循環中執行兩個fetch_array。 –

+0

請停止使用古代mysql_ *函數編寫新代碼。他們不再被維護,社區已經開始[棄用流程](http://news.php.net/php.internals/53799)。相反,您應該瞭解準備好的語句並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。如果你關心學習,[這裏是一個很好的PDO相關教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – DCoder

+0

有效的點,但你仍然有迭代結果的問題,這似乎是在這裏造成麻煩。 – chucktator

回答

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

單個查詢的代碼這樣的事情將讓你進入遊戲:

$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>'; 
} 
0

這個是什麼的地步:

$product_name = $row["product_name"]; 

只需使用$行[「PRODUCT_NAME」]直。

也做這個檢查之前進入循環:

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

它們具有相同的行數?否則,你會進入@Umbrella所說的。

相關問題