2014-01-10 106 views
-1

我試圖從表中獲取值的列表,但無法獲取所有值。在MySQL中運行以下內容將返回3個建築物的列表 - (建築物A,建築物A,建築物B),其中包含以下查詢:SELECT building FROM cms_availabilities。但是我無法在我的頁面上獲得相同的結果。SQL語句不返回所有值

$sql = "SELECT building FROM cms_availabilities"; 
$result = $database->query($sql); 
$availabilities[] = $database->fetch_array($result); 
var_export($availabilities); 

這將返回:array (0 => array (0 => 'Building A', 'building' => 'Building A',),)

我需要得到A棟大廈A棟B.我也不知道爲什麼第二個鍵顯示「建築」,而不是1.任何思考什麼繼續,還是如何成功拉入我想要的結果?

+0

需要通過結果集進行迭代獲取所有值。您當前的代碼將只放入數組中的第一行。 – Maximus2012

+1

可能重複的[php mysqli只返回一行] [http://stackoverflow.com/questions/13664659/php-mysqli-only-returns-one-row)也[這一個](http://stackoverflow.com/questions/9490633/php-statement-should-return-multiple-objects-but-only-returns-one)等等。 –

回答

2

fetch_array將只讀取當前行 - 你需要遍歷,依次取每個行:

while ($row = $database->fetch_array()) { 
    echo $row['building']; 
} 
1
while($availabilities = mysql_fetch_assoc($result)) 
{ 
    // Enter Code here; 
} 

這將返回一個關聯數組。

然而mysql_*命令已被棄用,所以你應該使用:

MySQLi的版本:

while($availabilities = $result->fetch_assoc()) 
    { 
     // Your Code here 
    } 

    // You should free availabilities after you're done with it. 
    $availabilities->free(); 
0

我會創造這樣的事情:

<?php 
function building(){ 
     [email protected]_query($this->db,"SELECT building FROM cms_availabilities"); 
      while ($row = @mysqli_fetch_object($query)){ 
      $building=stripslashes($row->building);   
       $show_building = array('building'=>$building); 
      } 

     return $this->building=$show_building; 
    }