2013-06-26 81 views
0

以下代碼顯示一行中客戶的姓名,其中包含他/她在名稱行下面的行中購買的所有項目。PHP:當從功能添加數據時while循環停止

正如您將看到的,在購買的物品行中,我還打印了getPrice函數獲得的物品價格。

問題是,第一個查詢,客戶查詢,檢索多行數據,但只要我調用getPrice函數,我只得到第一行。

如果不是調用函數我給價格只是一個值,一切都是正確的。

考慮到這一點,我改變了getPrice函數查詢,認爲它可能是錯誤的,但問題仍然存在.. while循環只打印一行。

有什麼問題出錯了嗎?我可以嘗試什麼?我堅持:(

謝謝!

<?php 

$query1 = "SELECT * FROM Customers"; //this retrieves several rows of data 
$result1 = mysql_query($query1) or die(mysql_error()); 

$flag = -999; 
while($row = mysql_fetch_array($result1)) 
{ 

    if ($row["id"] != $flag) 
    { 

     $content .="<span>".$row["lastName"].", ".$row["Name"]." </span><br />"; 
     $flag = $row["id"]; 
    } 

    $content .=("Item purchased: " .$row["item"]."Price: ".getPrice($row["ItemID"])."<br />"); 


    $content .="</br></br>"; 
}     


function getPrice ($itemID) 
{ 

    $query2 = "SELECT Price FROM Items WHERE ItemID= '".$itemID."'"; 
    $result2 = mysql_query($query2) or die(mysql_error()); 

    if($row2 = mysql_fetch_array($result2)) 
    { 
     return $row2[0]; 
    } 
} 

echo $content; 
?> 
+0

請張貼表結構和一些樣本記錄,最好在形式上'CREATE TABLE ...'和'INSERT INTO ...'sql語句。 – VolkerK

回答

0

使用,而不是如果用getPrice功能

function getPrice ($itemID) 
{ 
//Changed this line 
$query2="SELECT Price FROM Items WHERE ItemID= '".$itemID."'"; 
$result2 = mysql_query($query2) or die(mysql_error()); 

while($row2 = mysql_fetch_array($result2)) 
{ 
    return $row2[0]; 
} 
} 
+0

謝謝,但不工作.. – user523129

+0

我想你應該檢查你的數據庫.... –

0
function getPrice ($itemID) 
{ 
    //Changed this line 
    $query2="SELECT Price FROM Items WHERE ItemID= '".$itemID."'";//;was missing 
    $result2 = mysql_query($query2) or die(mysql_error()); 

    if($row2 = mysql_fetch_array($result2)) 
    { 
     return $row2[0]; 
    } 
} 
+0

我的錯誤代碼複製時,在我的腳本中是正確的..謝謝 – user523129