Данные PHP MySQL показывают только одну строку с циклом foreach - PullRequest
0 голосов
/ 02 мая 2011

хорошо, у меня есть это, и он не показывает все строки при извлечении из базы данных mysql, вот так:

  mysql_select_db($database_config, $config);
    $query_cat = "SELECT * FROM cat";
    $cat = mysql_query($query_cat, $config) or die(mysql_error());
    $row_cat = mysql_fetch_array($cat);

    $arr = array("TIT" => $row_cat['title'],
            "DES" => $row_cat['description']);


    foreach($arr as $ar){
    echo $ar;
    }

теперь он отображает только первую строку, а затем останавливается, почему он не отображает всеполя, и я не хочу использовать цикл while для этого, может кто-нибудь объяснить мне проблему ??

РЕДАКТИРОВАТЬ: Ну, в принципе, я хочу работать так, как это

$p = "{TIT}{DES}";
foreach($arr as $k => $p){
$p = str_replace("{".$k."}", $v, $p);
echo $p;
}

Теперь проблемане для str_replace, а для цикла или базы данных, поскольку строки базы данных не увеличиваются и отображают только одни данные.

Ответы [ 2 ]

4 голосов
/ 02 мая 2011

Это всегда вернет первый ряд.вы выбираете только один раз, который вернет только первый ряд.

Вместо этого вы должны извлечь все строки, используя оператор извлечения в цикле

 while($row_cat = mysql_fetch_array($cat)){
       echo $row_cat['title'];
       echo $row_cat['description'];
    }
0 голосов
/ 02 мая 2011

Из PHP mysq_fetch_array документация :

"Возвращает массив, соответствующий выбранной строке, и перемещает внутренний указатель данных вперед"

Насколько я знаю, вы не можете извлечь каждую строку без использования цикла.Вы должны сделать что-то похожее на это:

while($row_cat = mysql_fetch_array($cat)){
  echo $row_cat['title'];
  echo $row_cat['description'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...