2011-05-02 157 views
0

好吧,我也這樣與它並不顯示所有的行,當從MySQL數據庫中提取它是這樣的:PHP MySQL的數據只顯示一行與foreach循環

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函數的,因爲數據庫行不會增加,只顯示一個數據。

+0

'mysql_fetch_array'只取一排(http://php.net/mysql_fetch_array) – mellamokb 2011-05-02 16:30:20

+0

有毛病TIT :-) – zod 2011-05-02 16:32:19

+0

我已經重新編輯過的問題,請大家看... – 2011-05-02 16:53:21

回答

4

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

相反,你必須使用循環

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

讀取語句從PHP mysq_fetch_array documentation所有行獲取:

「返回對應於提取行的數組和未來移動內部數據指針「

據我所知,你不能檢索每一行機智hout使用循環。你應該做同樣的事情到這一點:

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