2013-03-21 8 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 –

+0

У вас есть то, что вам нужно в '$ list'. Сделайте 'foreach ($ list as $ row) {echo $ row ['field_name']; } '. Это ненужный внутренний 'foreach', который у вас есть, который вас отключает. –

+0

@MichaelBerkowski Спасибо, да, что меня действительно сбивало с толку, это дает больше смысла, спасибо за помощь! –

ответ

0

почему вы не просто

echo $row['field_name']; 
+0

Это не сработало, потому что мне приходилось много делать, еще раз спасибо Майклу! –

+0

Да, у вас было слишком много foreach. Майкл ответил правильно. Я не заметил, что он написал комментарий. – mat