如何显示查询结果

时间:2011-11-16 17:37:02

标签: php mysql

查询后我尝试显示数据。我只能收到'field_1 []'的数据。来自'field_2 []'和'field []'没有。如何解决?

if (!$result) {    
die("Query to show fields from table failed");
}

$fields_num = mysql_num_rows($result);

//------------------------------------------------------------------    
for($i_1=0; $i_1<$fields_num; $i_1++)
{    
$field_1 = mysql_fetch_assoc($result);    
echo "<td>a".$field_1['index_period_1']."</td>";
}
//------------------------------------------------------------------
//------------------------------------------------------------------

for($i=0; $i<$fields_num; $i++)
{    
$field = mysql_fetch_assoc($result);    
echo "<td>b".$field['index_period']."</td>";
}
//------------------------------------------------------------------
//------------------------------------------------------------------    
for($i_2=0; $i_2<$fields_num; $i_2++)
{    
$field_2 = mysql_fetch_assoc($result);    
echo "<td>c".$field_2['index_period_2']."</td>";
}

编辑:----------------------

|------------|period_1  |period_1  |period_1  |
-----------------------------------------------
|period_2    |period    |period    |period    |
-----------------------------------------------
|period_2    |period    |period    |period    |
-----------------------------------------------

2 个答案:

答案 0 :(得分:1)

你有点忽略了mysql_fetch_assoc()和MySQL中的行:

while ($row = mysql_fetch_assoc($result)) {
  echo $row['index_period'];
  echo $row['index_period_1'];
  echo $row['index_period_2'];
}

每行一次


我不确定为什么你需要像这样循环你的桌子,但我不会询问你。

这可能符合您的需求(我畏缩写这个):

mysql_fetch_assoc()

答案 1 :(得分:0)

完成第一个for循环后,您已遍历整个结果集。因此,当您输入下一个for循环时,没有任何内容可以迭代,mysql_fetch_assoc()返回false。如果要重置内部数据指针,可以调用

mysql_data_seek($result, 0);

这将使您能够在下一个for循环中重新遍历结果集。