2012-09-11 29 views
1

我正在運行下面的代碼來回顯MySQL數據庫中單個行的內容,它當前正在輸出似乎是輸出兩倍的內容。見下文對於每個循環的PHP輸出應該是它的兩倍

$result = mysql_query("SELECT * FROM table WHERE this='1'") or die(mysql_error()); 
$row = mysql_fetch_array($result); 
    foreach($row as $key => $field) { 
     if($key != 'id' && $key != 'doss' && $key != ''){ 
      echo "Field name: $key = $field<br />"; 
      $missing =$missing+$field; 
     } 
    } 

輸出:

Field name: 1 = 0 
Field name: go = 0 
Field name: 2 = 1 
Field name: het = 1 
Field name: 3 = 0 
Field name: quf = 0 
Field name: 4 = 0 
Field name: sid = 0 
Field name: 5 = 1 
Field name: ram = 1 
Field name: 6 = 1 
+0

請注意,'mysql_xx()'功能被認爲已經過時,不推薦使用。 PHP手冊強烈建議切換到等效的'mysqli_xx()'函數或PDO庫。 – Spudley

回答

8

mysql_fetch_array將產生兩個數字鍵和關聯的鍵陣列。

默認定義是:

array mysql_fetch_array (resource $result [, int $result_type = MYSQL_BOTH ]) 

如果你想獲得唯一值,使用MYSQL_ASSOCMYSQL_NUM

+0

乾杯。你已經教會了我如何解決這個問題,並保存了我不得不問的是mysql_fetch_array和mysql_fetch_assoc之間的區別是 – Somk

+0

@max沒問題!不要忘記,使用mysql_方法是不鼓勵的。改用MySQLi或PDO。 – Tchoupi

+0

這是爲什麼?看起來像我還有別的東西要研究;) – Somk

0

mysql_fetch_assoc是你默認情況下,尋找

3

mysql_fetch_array該函數返回包含數字索引和關聯鍵的數組。

如果你想一個或另一個,你可以在額外的選項傳遞:

$row = mysql_fetch_array($result, MYSQL_NUM); 

$row = mysql_fetch_array($result, MYSQL_ASSOC);