2012-01-16 141 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