2
<?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 我必须在循环外部访问它我有一个选择单行单列的想法表格的每个单元格分开,但任何替代方案或解决方案都将耗费时间和长度?

4

2 回答 2

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;
}
于 2012-06-05T00:16:26.567 回答
2

在循环中构建表格,然后将其回显到页面。例如,如果您正在构建一个表,其中每一行都有一个用户的 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 号写入一个单元格,依此类推。

于 2012-06-05T00:15:50.543 回答