我有Mysql查询的问题。我写了这段代码
enter code here
$result = mysql_query("SELECT * FROM description");
while ($row = mysql_fetch_array($result)){
$data[] = $row;
foreach ($data as $row){
echo $row['name'];
}
}
enter code here
我的输出是:
First description
First description
Second description
First description
Second description
Third description
我在db(第一,第二,第三)中有3个描述,我不知道他为什么给我这样的东西。
有谁知道出了什么问题?
答案 0 :(得分:5)
您需要在while
循环后将其移至:
foreach ($data as $row) {
echo $row['name'];
}
首先,您在$data
变量中获取所有行,然后才开始回显它们。
答案 1 :(得分:2)
mysql_fetch_array()
返回一个双数组:整数AND字符串键控。如果你做完了:
while ($row = mysql_fetch_array($result)){
var_dump($row);
}
你会看到两个键。请尝试使用mysql_fetch_assoc()
,而只返回字符串键版本。
答案 2 :(得分:1)
你的foreach循环在你的while循环中。把它移到外面试试。
$result = mysql_query("SELECT * FROM description");
while ($row = mysql_fetch_array($result)){
$data[] = $row;
}
foreach ($data as $row){
echo $row['name'];
}