PHP从数据库中获取数据,并在循环中使用它

时间:2012-06-05 00:11:55

标签: php mysql html

<?php   
$q=select * from students where (dynamic for user searching)   
$qry=mysql_fetch_array($q);   
while($row=mysql_fetch_array())   
{   
   **// i do not need data here?**   
}   
?>   
< table>   
< tr>< td><?php echo **$row[?][?];** ?>< /td>< td><?php echo **$row[?][?];** ?>< /td>...< /tr>   
< tr>< td><?php echo **$row[?][?];** ?>< /td>< td><?php echo **$row[?][?];** ?>< /td>...< /tr>   
....    
< /table> 

需要以html表格式生成动态报告 html表行和列对结果是静态的 所以我不能在while循环中使用echo 我必须在循环时访问它 我有一个想法,分别为表的每个单元格选择单行单列 但这将耗费时间和长度 任何替代方案或解决方案?

2 个答案:

答案 0 :(得分:4)

您不必使用while循环。您可以根据需要获取数据。

$row1 = mysql_fetch_array($qry);
$row2 = mysql_fetch_array($qry);

我不喜欢这样做因为你必须跟踪资源(在这种情况下为$ qry)并且你必须继续输入mysql_fetch _ *()所以我倾向于在我之前将结果加载到数组中使用它们。

$result = array();
while($row=mysql_fetch_object($qry))
{
    $result[] = $row;
}

答案 1 :(得分:1)

在循环中构建表,然后将其回显到页面。例如,如果您要构建一个表,其中每行都有一个用户的ID和名称,它将如下所示:

$table = "";
while($row=mysql_fetch_array($qry)) {   
   $tablerow = "<tr><td>" . $row['id'] . "</td><td>" . $row['name'] . "</td></tr>";
   $table .= $tablerow;
}   

// you've built a string with the entire table. Now write it to the page.
echo($table);

在while循环之外构建表通常是一个坏主意,因为你重复了很多代码而你不知道需要输入多少行。但是如果你真的想这样做的话你在问题中展示了(也许是因为你只想要查询中的某些特定行?),在你的while循环中构建一个数组,然后引用它之外的那个数组。

$results = array();
while($row=mysql_fetch_array()) {   
    $results[] = $row;
}       

然后,您可以使用<td><?php echo($results[0]['id']) ?></td>写入包含第一个用户ID号的单元格,依此类推。