0

テーブルからユーザーを取得し、html テーブルで表示したいと考えています。名前のアバターを表示したいと考えています。これらの情報はすべて表にあります。これを必要な行数で4列の表に表示したい。

これは、求められた私の完全なコードです:

<html><head><title>MySQL Table Viewer</title></head><body>
<?php
$db_host = '';
$db_user = '';
$database = '';
$db_pwd = '';
$table = '';
if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");
if (!mysql_select_db($database))
die("Can't select database");
// sending query
$result = mysql_query("SELECT * FROM {$table} WHERE livedj=1");
if (!$result) {
die("Query to show fields from table failed");
}
$max_rows = 6;
$max_cols = 4;
echo "<table>";
$rows = 1;
while ($rows <= $max_rows)
{
echo "<tr>";
$cols = 1; // reset columns to 1 for each row
while ($cols <= $max_cols)
{
     echo "<td>". $row['name'] . "<br />
     <img src=\"http://myurl/path/to/pics/" . $row['avatar'] . "\" height=\"150\" width=\"150\" /></td>";
     $cols++; // column counter
}
echo "</tr>";
$rows++;  //row counter
}
echo "</table>";
?>
</body></html>

これは正しいテーブルが作成されたページのみを提供しますが、mysqlからの情報は表示されません...

はい、ここでデータベースとパスワードの設定を削除しました。私のコピーには正しい設定があります。

4

6 に答える 6

1

結果セットの各行を反復処理する必要があります。例えば:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

$result = mysql_query("SELECT * FROM Persons");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }

mysql_close($con);
?> 

PS: mysql_connect()/mysql_query() などを使用するよりも、新しい API のいずれかを使用した方がよいでしょう:

http://php.net/manual/en/function.mysql-query.php

于 2012-07-30T18:41:17.740 に答える
1

SQLテーブルには6つのデータフィールド(WHERE句で使用しているように見える「livedj」を含む7つ)と、必要な数のデータエントリがあると言いたいと思います。

また、出力を次のようにすることも想定しています。

+------+--------+-----------------------------+
| Name | Avatar | Other stuff (email,fb,...)  |
+------+--------+-----------------------------+
| John | :-)    | blah                        |
| ...  |  ...   | ...                         |
+------+--------+-----------------------------+

次に、そのコードは次のようになります。

<?php
$result = mysql_query("SELECT name, address, twitter, email, facebook, avatar FROM {$table} WHERE livedj=1 ");
if (!$result) {
die("Query to show fields from table failed");
}
echo "<table border='1'>";

while($row = mysql_fetch_array($result)){
  echo "<tr><td>".$result["name"]."</td><td>"
  ."<img alt='avatar' src='path/to/img/folder/".$result["avatar"]." /></td><td>"
  .$result["address"]."</td><td>".$result["email"]."</td><td>"
  .$result["twitter"]."</td><td>".$result["facebook"]"</td></tr>\n";
}
echo "</table>
?>
于 2012-07-30T18:52:36.407 に答える
0
echo '<table>';

while($row = mysql_fetch_array($result))   {   
  echo "<tr>";
  echo "<td>".$row['name']."</td>";
  echo "<td>".$row['facebook']."</td>";
  echo "<td>".$row['twitter']."</td>";    
  echo "</tr>";   
} 

echo '</table>';

出力は次のようになります。

名前1 フェイスブック1 ツイッター1

名前2 フェイスブック2 ツイッター2

name3 フェイスブック3 ツイッター3

于 2012-07-30T18:46:50.847 に答える
0

</table>for ループの最後に行方不明になっていませんか?

于 2012-07-30T18:41:39.130 に答える
0
while ($row = mysql_fetch_array($result))
echo "<tr><td><img src=\"http://myurl.com/images/" . $row['avatar'] . "\" height=\"150\" width=\"150\" /><br />" . "<span style=\"text-align:center;\">" . $row['name'] . "</span></td></tr>";
于 2012-07-30T18:42:46.690 に答える
0

複数の列を取得するには、さらにテーブル データ タグを追加する必要があります。

例えば

<table>
 <tr>
   <td>Column 1</td>
   <td>Column 2</td>
   <td>Column 3</td>
 <tr>
</table>
于 2012-07-30T18:44:02.883 に答える