2012-01-16 118 views
0

我已经检查过以前回答过的所有类似的问题,没有任何工作。我有一个“收件箱”类型的应用程序,其中一个人[email protected]可能有5条消息等待他们。他们登录并获得这五条消息的屏幕,发送者电子邮件,发送日期以及消息的前15个字符。将mysql数据拉入多维数组

在MySQL中,我有:id,emailaddress,senderemail,datesent,fullmessage。我使用SELECT * FROM db WHERE emailaddress='[email protected]'来拉出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

请显示您到目前为止的PHP代码。你不能在HTML中放置'for'循环,那么这是某种PHP框架的模板文件吗? – 2012-01-16 21:50:07

+0

这与从MySQL检索数据并在HTML表格中显示结果的无数问题有何不同? – outis 2012-01-17 20:11:20

+0

[在表中打印查询结果]可能的重复(http://stackoverflow.com/questions/1999815/),[从MySQL数据库读取数据到HTML表?](http://stackoverflow.com/questions)/2595832 /),[用PHP创建表并从MySQL填充](http://stackoverflow.com/questions/3050558/) – outis 2012-01-17 20:11:44

回答

3

当您使用mysql_fetch_array()mysql_fetch_assoc()来自数据库的信息位于数组中。所以,你可以这样做:

<table> 
<?php 
$storage_array = array(); 
$result = mysql_query("SELECT * FROM db WHERE emailaddress='[email protected]'" 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> 

你显然需要加入一些表的消息,如果他们是在不同的tabels或使用LIMIT只得到5行。您还需要确定您的ORDER BY

您需要知道哪个循环将数据添加到$storage_array并记住它始于$storage_array[0]

+0

这正是我正在寻找的东西,除了有多行“emailaddress @ xyz .com“,我想获得所有的行。这只是如果有一行emailaddress='[email protected]',对吧? – user1149499 2012-01-16 23:07:39

+0

好的,实际上,这很好。 :-)但现在我想知道如何访问这些数据,所以我可以将它分配给变量。或者,也许问题是将它首先放入多维数组中是否更好,然后使用这些变量创建表?无论哪种方式,感谢您的帮助! :-) – user1149499 2012-01-17 00:44:39

+0

这是通过循环数据创建一个表。你需要拉两个数组并循环它们吗?您可以通过调用'$ data ['']'来访问当前行,'['']'部分是表列的名称。 – Biotox 2012-01-17 01:41:07