好吧,我有这个,它没有显示从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与循环或数据库的关系,因为数据库行没有递增,只显示一个数据。
答案 0 :(得分:4)
这将始终返回第一行。你只获取一次只会返回第一行。
相反,您必须使用循环
中的fetch语句获取所有行 while($row_cat = mysql_fetch_array($cat)){
echo $row_cat['title'];
echo $row_cat['description'];
}
答案 1 :(得分:0)
来自PHP mysq_fetch_array
documentation:
“返回与获取的行对应的数组,并将内部数据指针向前移动”
据我所知,如果不使用循环,则无法检索每一行。你应该做类似的事情:
while($row_cat = mysql_fetch_array($cat)){
echo $row_cat['title'];
echo $row_cat['description'];
}