2012-06-05 36 views
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循环使用回声 我不得不在访问它的同时回路 我有一个想法,为每个单独的表单独列表单独选择 ,但它会很费时间和长度 任何替代方案或解决方案?PHP从数据库中获得数据,并使用它以外while循环

+2

你能澄清这点吗?我不明白你为什么不能使用'echo' –

+1

为什么你不能在while循环中使用'echo'? –

+0

你需要处理你的HTML –

回答

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

在循环内建立表格,然后将其回显到页面。例如,如果您构建了一个表,其中每行有一个用户的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号的电池,等等。

+0

thanx所有回复的人,我已经完成了上述方法,即将数据分配给一个数组,然后在需要时访问它,使用数组我可以灵活地移动到上一个和下一个记录。谢谢你guyz –

+0

@octern实际上,在while循环中建立你的表通常是一个坏主意。在MVC模型之后,您需要首先加载所有您需要的数据。只有这样你才能开始建造餐桌。 MVC通常会导致将mysql结果加载到稍后使用的数组中。 –

+0

BTW [mysql_fetch_array()](http://php.net/manual/en/function.mysql-fetch-array.php)需要一个资源。 –

相关问题