2010-06-04 50 views
5

我想回顯特定查詢中的所有內容。如果echo $ res,我只能得到其中一個字符串。如果我改變第二個mysql_result參數,我可以得到第二,第二等,但我想要的是所有這些,一個接一個地迴應。我怎樣才能把一個MySQL結果變成我可以使用的東西?如何從數據庫回顯錶行(php)

我想:

$query="SELECT * FROM MY_TABLE"; 
$results = mysql_query($query); 
$res = mysql_result($results, 0); 

while ($res->fetchInto($row)) { 
    echo "<form id=\"$row[0]\" name=\"$row[0]\" method=post action=\"\"><td style=\"border-bottom:1px solid black\">$row[0]</td><td style=\"border-bottom:1px solid black\"><input type=hidden name=\"remove\" value=\"$row[0]\"><input type=submit value=Remove></td><tr></form>\n"; 
} 

回答

16

通常的做法是這樣的:

$query="SELECT * FROM MY_TABLE"; 
$results = mysql_query($query); 

while ($row = mysql_fetch_array($results)) { 
    echo '<tr>'; 
    foreach($row as $field) { 
     echo '<td>' . htmlspecialchars($field) . '</td>'; 
    } 
    echo '</tr>'; 
} 
8
$result= mysql_query("SELECT * FROM MY_TABLE"); 
while($row = mysql_fetch_array($result)){ 
     echo $row['whatEverColumnName']; 
} 
+0

謝謝你,你的答案作品也很好,但其他人先回答了這個問題。 – 2010-06-04 18:07:41

+2

其實,這個答案只回聲每行中的一列。 – ToolmakerSteve 2015-07-15 21:58:56

10

拓展上公認的答案:

function mysql_query_or_die($query) { 
    $result = mysql_query($query); 
    if ($result) 
     return $result; 
    else { 
     $err = mysql_error(); 
     die("<br>{$query}<br>*** {$err} ***<br>"); 
    } 
} 

... 
$query = "SELECT * FROM my_table"; 
$result = mysql_query_or_die($query); 
echo("<table>"); 
$first_row = true; 
while ($row = mysql_fetch_assoc($result)) { 
    if ($first_row) { 
     $first_row = false; 
     // Output header row from keys. 
     echo '<tr>'; 
     foreach($row as $key => $field) { 
      echo '<th>' . htmlspecialchars($key) . '</th>'; 
     } 
     echo '</tr>'; 
    } 
    echo '<tr>'; 
    foreach($row as $key => $field) { 
     echo '<td>' . htmlspecialchars($field) . '</td>'; 
    } 
    echo '</tr>'; 
} 
echo("</table>"); 

優點:

  • 使用mysql_fetch_assoc(而不是第二個參數指定類型的mysql_fetch_array),我們避免每個字段獲得兩次,一次爲數字索引(0,1,2,..),第二次爲聯想密鑰。

  • 將字段名稱顯示爲表格的標題行。

  • 顯示如何遍歷每行的字段,以便爲每個字段獲取column name($ key)和value($ field)。

  • 包裹在<table>中,以便正確顯示。

  • (可選)如果查詢失敗,將顯示查詢字符串和mysql_error。

輸出示例:

Id  Name 
777  Aardvark 
50  Lion 
9999 Zebra 
+1

mysql_fetch_assoc解決了我的重複輸出問題:) +1 – 2016-03-21 17:30:06