2015-01-17 54 views
0

這是解決的(編輯在頁面底部)PHP mysqli查詢輸出錯誤

我在foreach語句中的查詢輸出出現問題。出於某種原因,變量的轉儲會給出NULL NULL NULL等,而不是表項的正確輸出。有誰知道是什麼原因造成的?

 <?php 
     $offers_array = array(); 

     $query = "select trade_offer.*, gebruikers.naam, gebruikers.image_url from trade_offer join gebruikers on gebruikers.id = trade_offer.sender_id where receiver_id = ?"; 
     $stmt = $db->prepare($query); 
     $stmt-> bind_param('i', $gebruiker->id); 
     $stmt->execute(); 
     $result = $stmt->get_result(); 
     while ($row = $result->fetch_assoc()){ 
     $offers_array[] = $row; 
     } 

     foreach($offers_array as $offer){ 
     $query_fetch = "select * from items where id in (?,?,?,?,?,?,?,?)"; 
     $stmt = $db->prepare($query_fetch); 
     $stmt-> bind_param('iiiiiiii', $offer['receiver_gets_1'], $offer['receiver_gets_2'], $offer['receiver_gets_3'], $offer['receiver_gets_4'], $offer['sender_gets_1'], $offer['sender_gets_2'], $offer['sender_gets_3'], $offer['sender_gets_4']); 
$stmt->execute(); 
$stmt->bind_result($col1, $col2, $col3, $col4); 
    while($stmt->fetch()){ 
     $id = $col1; 
     $naam = $col2; 
     $prijs = $col3; 
     $image = $col4; 

     echo $id; 
     echo $naam; 
     echo $prijs; 
     echo $image; 
    } 
}?> 

自卸$報價:

Array 
(
    [id] => 8 
    [receiver_id] => 2 
    [sender_id] => 3 
    [receiver_gets_1] => 10 
    [receiver_gets_2] => 15 
    [receiver_gets_3] => 18 
    [receiver_gets_4] => 13 
    [sender_gets_1] => 19 
    [sender_gets_2] => 14 
    [sender_gets_3] => 17 
    [sender_gets_4] => 9 
    [accepted] => 
    [naam] => John 
    [image_url] => http://www.example.com/img.jpg 
) 

內容項目表:

id naam prijs image_url 
1 item1 2.00 example.com 
2 item2 2.00 example.com 
3 item3 2.00 example.com 
4 item4 2.00 example.com 
5 item5 2.00 example.com 
6 item6 2.00 example.com 
etc. 

謝謝!

編輯:我編輯我的代碼,以金亞歷山大的回答,現在出現以下錯誤: Fatal error: Call to a member function bind_param() on boolean in ......\tradeoffers.php on line 31

第31行:

$stmt-> bind_param('iiiiiiii', $offer['receiver_gets_1'], $offer['receiver_gets_2'], $offer['receiver_gets_3'], $offer['receiver_gets_4'], $offer['sender_gets_1'], $offer['sender_gets_2'], $offer['sender_gets_3'], $offer['sender_gets_4']);

回答

0

我想你的意思是不是:

$result = $stmt->get_result($col1, $col2, $col3, $col4); 
    while($stmt->fetch()){ 
     $id = $col1; 
     $naam = $col2; 

但是

$stmt->bind_result($col1, $col2, $col3, $col4); 
    while($stmt->fetch()){ 
     $id = $col1; 
     $naam = $col2; 
+0

感謝您的回答,只有現在我得到以下錯誤:'致命錯誤:調用成員函數bind_param()布爾在.... \ tradeoffers.php上線31'這是行31我的文件:'$ stmt-> bind_param('iiiiiiii',$ offer ['receiver_gets_1'],$ offer ['receiver_gets_2'],$ offer ['receiver_gets_3'],$ offer ['receiver_gets_4'],$ offer [ sender_gets_1'],$ offer ['sender_gets_2'],$ offer ['sender_gets_3'],$ offer ['sender_gets_4']);'' –