2012-04-25 129 views
0

我試圖在數組中存儲事件的標題(摘要)和日期(創建)。但我想我在我的循環中錯過了一些東西。將列值存儲在數組中

<?php 
$summary = array(); 
$date = array(); 

mysql_connect('mysql.server', 'myUsername', 'myPass') or die('Could not connect: ' . mysql_error()); 
mysql_select_db("mxgsite") or die(mysql_error()); 
$query_summary = mysql_query('SELECT summary FROM event_info') or die(mysql_error()); 
$query_date = mysql_query('SELECT created FROM event_details') or die(mysql_error()); 

$row_summary = mysql_fetch_array($query_summary); 
$row_date = mysql_fetch_array($query_date); 

$i = 0; 
while(($row1 = mysql_fetch_array($query_summary))) { 
    $row2 = mysql_fetch_array($query_date); 
    $summary[] = $row['summary']; 
    $date[] = $row['created']; 
    echo $summary[$i] . " " . $date[$i] . "<br ?>"; 
    $i++; 
} 

我知道我得到的值,因爲我可以重複出1倍的值,但是如果我想把所有的值在數組中,並嘗試呼應的是,陣列我不斷收到空值?

+0

我覺得你的更大的問題是,有沒有保證說「event_info」表中的第x行與「event_details」表中的第x行有關,否? – deceze 2012-04-26 00:05:30

+0

他們使用event_id作爲共享密鑰? – 2012-04-26 00:07:26

+0

同意欺騙。如果2個表可以通過「eventid」或其他類型的關聯進行關聯,那麼您最好做一個連接並獲取摘要並在1個查詢中創建。這樣,您就可以將它們作爲鏈接對存儲和使用。 – davesnitty 2012-04-26 00:07:56

回答

4

在我看來,你似乎想在這裏做太多的事情。由於這兩組值沒有以彼此相關/鏈接的方式存儲,所以您可以在單獨的while循環中處理它們。嘗試是這樣的:

while ($row = mysql_fetch_array($query_summary)){ 
    $summary[] = $row[0]; 
} 
while ($row = mysql_fetch_array($query_date)){ 
    $date[] = $row[0]; 
} 

如果要關聯的表,按上述意見,你可以嘗試更多的東西一樣:

$result = mysql_query('SELECT a.eventid, a.summary, b.created 
         FROM event_info a 
         join event_details b 
         on a.eventid = b.eventid'); 

$events = array(); 

while ($row = mysql_fetch_array($result)){ 
    $event = array(); 
    foreach ($row as $key=>$value){ 
     $event[$key]=$value; 
    } 
    $events[] = $event; 
} 
+0

+1,除了內部循環。你只是將數組複製到另一個數組中,這是不必要的。 – deceze 2012-04-26 00:17:02