2013-03-14 61 views
0

我已經刪除了該表,並重新開始了新的數據,並試圖找出爲什麼我的循環在開始時添加了額外的空結果。下面是我用於循環的代碼。MYSQL循環顯示額外的「空」結果

$sql = "SELECT * FROM `addresses` WHERE `company_name` = '$pro_company'"; 
    $query = $mysqli->query("$sql");  
     while($array[] = $query->fetch_object()); 
      array_pop($array); 
      foreach($array as $listing) : 
       echo $listing->Taddress . " "; 
       echo $listing->Tcity. " "; 
       echo $listing->Tstate . " "; 
       echo $listing->Tzip . " "; 
       echo " <a href='edit.php?pid=". $listing->PID . "'>edit</a> |"; 
       echo " <a href='delete.php?pid=". $listing->PID . "'>delete</a>"; 
       echo "</a><br />"; 
     endforeach; 

我從這個循環得到的結果如下。

 edit | delete 
     14220 Parrott Ext. TestCity AL 84106 edit | delete 

我想學習mysqli語句,所以我肯定有我缺少的東西。

感謝您的幫助提前。

+0

查詢返回的第一行必須有空列。 – Barmar 2013-03-14 17:35:26

回答

0

拋出一個

print_r($array);die; 

在foreach之前,並期待在輸出。這應該讓你知道問題的確切位置。

+0

我打印陣列並發現問題。我包含另一個頁面的另一個查詢。非常感謝你的幫助!我改變了我的編碼,現在它的工作很好。 – 2013-03-14 17:51:09

+0

沒問題!學會熱愛print_r()! :) – zajd 2013-03-14 18:10:53

0

很有可能您的數據庫有一行沒有值。先檢查一下。偏偏往往比你意識到(我反正)

作爲一種可能的解決方案,可以echo'ing保證值前添加一個額外的條件存在

foreach($array as $listing) : 
    if($listing->Taddress){ 
    echo $listing->Taddress . " "; 

個人而言,我找到原因第一。 print_r將幫助

+0

我用你的if語句在我的循環中,這似乎使它的工作,並削減了額外的條目。謝謝你的幫助! – 2013-03-14 17:53:09