2012-04-25 84 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