2012-06-05 61 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)需要一個資源。 –

相關問題