我已经检查了以前回答的所有类似问题,但没有任何工作。我有一个“收件箱”类型的应用程序,其中emailaddress@xyz.com的人可能有5条消息等待它们。他们登录并获取这五条消息的屏幕,发件人电子邮件,发送日期以及消息的前15个字符。
在mysql中,我有:id,emailaddress,senderemail,datesent,fullmessage。
我正在使用SELECT * FROM db WHERE emailaddress='emailaddress@xyz.com'
来提取5条新消息。 $result
等于mysql查询。 mysql_num_rows
很好地告诉我有5行。它到目前为止工作正常。
我的问题是我不能(尽管经过几个小时的尝试)找到正确的语法,使其成为一个多维数组,以便我可以在for循环中迭代表行并将其全部打印出来。我想象的是:
<table>
for ($a = 0; $a < $numrows; $a++) {
<tr>
the php code would go here and would print the associated sender, date, and message in <td> cells.
</tr>
}
</table>
任何帮助都会很棒。
我确信这并不难,但下午大部分时间都没有到达。任何人都可以告诉我这样做的简单语法是什么?
答案 0 :(得分:3)
使用mysql_fetch_array()
或mysql_fetch_assoc()
时,来自数据库的信息位于数组中。所以,你可以这样做:
<table>
<?php
$storage_array = array();
$result = mysql_query("SELECT * FROM db WHERE emailaddress='emailaddress@xyz.com'" or die(mysql_error());
while($data = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?php echo $data['sender'] ?></td>
<td><?php echo $data['date'] ?></td>
<td><?php echo $data['message '] ?></td>
</tr>
<?php
$storage_array[] = $data;
}
?>
</table>
如果消息位于不同的表格上,或者使用LIMIT
只能获得5行,显然需要加入一些表格。您还需要确定ORDER BY
。
您需要知道将数据添加到$storage_array
的循环,并记住它以$storage_array[0]
开头。