将mysql数据拉入多维数组

时间:2012-01-16 21:39:16

标签: php mysql arrays multidimensional-array

我已经检查了以前回答的所有类似问题,但没有任何工作。我有一个“收件箱”类型的应用程序,其中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>

任何帮助都会很棒。

我确信这并不难,但下午大部分时间都没有到达。任何人都可以告诉我这样做的简单语法是什么?

1 个答案:

答案 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]开头。