2014-01-21 116 views
0

該查詢不斷返回2個條目,我無法弄清楚爲什麼。爲什麼mysql查詢沒有返回正確的數量

我有一個名爲members的表中擁有我的成員的數據庫。目前它有5條記錄,因爲它只是用於測試。當我使用下面的查詢時,我得到了兩個結果,我登錄到網站的當前ID以及空白結果。

$memarray = mysql_query("SELECT id FROM members") or die ("unable to get info"); 
$fArray = mysql_fetch_array($memarray); 

echo count($fArray); //shows 2 
echo $fArray[0];  //shows '102' my current id 
echo $fArray[1];  //shows nothing 
+0

你能顯示輸出?並且使用'msqli_query'而不是'mysql_query' – user2936213

+0

添加上面的輸出,謝謝 – Benjio

+0

不贊成使用'mysql_ *'做你自己的忙,並用'mysqli_ *'替換'mysql_ *'。 http://us3.php.net/manual/en/changelog.mysql.php – Jason

回答

3

mysql_fetch_array()在數組中存儲一行。要檢索所有行,您必須重複調用它。

while ($row = mysql_fetch_array($result)) 
{ 
    ... 
} 

要保存的所有行中的陣列,只需做

$rows = array(); 
while ($row = mysql_fetch_array($result)) 
    $rows[] = $row; 

然而,這是相當低效的。如果可能的話,你應該在while -loop內處理你的數據。

+0

謝謝。我可以問我怎樣才能將每個值推入一個新的數組來保存所有的ID?謝謝 – Benjio

0

通過使用mysql_fetch_array($memarray),您將獲得查詢結果的第一行。
函數的默認第二個參數是「MYSQL_BOTH」。
這意味着你得到[0 =>'someID','id'=>「someID」]
你可以使用「MYSQL_ASSOC」來代替。
看到這個php manual

0

mysql_fetch_array - 從結果集中取得一行作爲關聯數組,數字數組,或兩者 http://php.net/mysql_fetch_array

$memarray = mysql_query("SELECT id FROM members") or die ("unable to get info"); 
$fArray = mysql_fetch_array($memarray); 
echo '<pre>'; 
print_r($fArray); 

結果會是一些這樣的事:

Array ([0] => 23 [id] => 23) 

明顯count($ fArray)return 2

計算所有recors

$memarray = mysql_query("SELECT COUNT(id) as count FROM members") or die ("unable to get info"); 
$fArray = mysql_fetch_assoc($memarray); 
echo $fArray['count']; 

$memarray = mysql_query("SELECT id FROM members") or die ("unable to get info"); 
echo mysql_num_rows($memarray); 

獲取所有的記錄

while($row = mysql_fetch_assoc($memarray)) 
{ 
    print_r($row); 
} 

,我也建議採取看看這個通知:

警告此擴展從PHP 5.5.0開始已棄用,並且將來會被刪除。應該使用MySQLi或PDO_MySQL擴展 。另請參閱MySQL:有關更多信息,請選擇API指南和相關常見問題 。替代該功能包括: mysqli_fetch_array()PDOStatement對象::獲取()

http://ir1.php.net/manual/en/mysqli-result.fetch-array.php http://ir1.php.net/manual/en/pdostatement.fetch.php

0

使用此:

$memarray = mysqli_query("SELECT id FROM members") or die ("unable to get info"); 
while ($fArray = mysqli_fetch_array($memarray)) 
{ 
    echo $fArray["id"]; 
} 
相關問題