簡體   English   中英

php mysql 數據僅顯示一行帶有 foreach 循環

[英]php mysql data only shows one row with foreach loop

好的,我有這個,從 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 它與循環或數據庫,因為數據庫行沒有增加並且只顯示一個數據。

這將始終返回第一行。 你只取一次,只會返回第一行。

相反,您必須在循環中使用 fetch 語句獲取所有行

 while($row_cat = mysql_fetch_array($cat)){
       echo $row_cat['title'];
       echo $row_cat['description'];
    }

來自PHP mysq_fetch_array文檔

“返回一個與獲取的行相對應的數組,並將內部數據指針向前移動”

據我所知,不使用循環就無法檢索每一行。 你應該做類似的事情:

while($row_cat = mysql_fetch_array($cat)){
  echo $row_cat['title'];
  echo $row_cat['description'];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM