我想从我的表中提取我的用户,并用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的任何信息。。。
是的,我已经删除了这里的数据库和密码设置,我的副本有正确的设置。
我希望你的意思是说你的SQL表有6个数据字段(其中7个带有你在WHERE子句中使用的"livedj"),以及根据需要的数据条目。
我还假设你希望你的输出看起来像这样:
+------+--------+-----------------------------+
| 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>
?>
您需要遍历结果集中的每一行。例如:
<?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:您最好使用一个较新的API,而不是使用mysql_connect()/mysql_query()和friends:
http://php.net/manual/en/function.mysql-query.php
mysqli_query
PDO::查询
在for循环的末尾不是缺少</table>
吗?
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>";
您需要添加更多的表数据标记才能获得多个列。
例如
<table>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
<tr>
</table>
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>';
输出为:
name1 Facebook 1 Twitter 1
name2 Facebook2 Twitter2
name3 Facebook3 Twitter3