我有一个可以返回多行的查询。
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
$data[] = $row;
foreach ($data as $row){
echo $row['...'];
}
}
问题是它只打印一行,而我应该打印 2 行。
有人可以帮助我吗?
问题可能是您正在重用$row
变量。此外,逻辑有点奇怪:为什么每次获取新行时都要循环遍历$data
?你的意思是这样做吗:
while ($row = mysql_fetch_array($result)){
$data[] = $row;
}
foreach ($data as $row){
echo $row['...'];
}
尝试类似操作:
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
foreach ($row as $k=>$v){
echo $k ." = " . $v;
}
}
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
$data[] = $row;
foreach ($data as $col){
echo $col['...'];
}
echo '<br>';
}
或
echo '<table>';
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
$data[] = $row;
echo '<tr>';
foreach ($data as $col){
echo '<td>';
echo $col['...'];
echo '</td>';
}
echo '</tr>';
}
echo '</table'>;
也许问题是你在 while 循环中迭代$data数组,我认为你想收集$data中的所有行,并且只有在 while 中断时迭代它以显示结果。
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
$data[] = $row;
}
foreach ($data as $row){
echo $row['...'];
}
还是我误会了?
Do some changes in your code for check no. of results
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
foreach ($row as $val){
echo $val;
}
}