2013-03-21 81 views
-1

嘿,通常我使用mysqli_fetch_array來顯示我的數據庫在我的CMS中的內容,但最近有人告訴我我應該使用mysqli_fetch_assoc並將結果推送到一個數組中,以便數據庫只運行一次,而不是爲每條記錄運行數據庫。mysqli_fetch_assoc

但我真的不知道如何在不向他們展示所有顯示我的領域,通常我會附和$data['field_name'],但我已經注意到與mysqli_fetch_assoc是我不能只是呼應$value['field_name'],所有我能做的就是回聲$value並顯示所有結果。

這就是我所做的,希望是有道理的。預先感謝任何幫助!

PHP

$sql = "SELECT * FROM app_categories"; 

if($result = query($sql)){ 
    $list = array(); 

    while($data = mysqli_fetch_assoc($result)){ 
     array_push($list, $data); 
    } 

    foreach($list as $i=>$row){  
     foreach($row as $column=>$value){ 
      echo $value; 
     } 
    } 
} 
+0

請參閱此主題:http://stackoverflow.com/questions/11480129/mysql-fetch-row-vs-mysql -fetch-assoc-vs-mysql-fetch-array – 2013-03-21 03:10:17

+0

你有'$ list'所需的東西。做'foreach($ list爲$ row){echo $ row ['field_name']; }'。這是你在那裏得到的不必要的內在「foreach」,它會讓你失望。 – 2013-03-21 03:12:53

+0

@MichaelBerkowski謝謝,是的,這是什麼讓我很困惑,這使得更多的意義,謝謝你的幫助! – 2013-03-21 03:15:32

回答

0

爲什麼你不只是

echo $row['field_name']; 
+0

這不起作用,因爲我有很多foreach,再次感謝邁克爾! – 2013-03-21 03:17:33

+0

是的,你有太多的foreach。邁克爾答案是正確的。我沒有注意到他寫了評論。 – mat 2013-03-21 03:20:05