将列值存储在Array中

时间:2012-04-25 23:57:43

标签: php mysql

我正在尝试将事件的标题(摘要)和日期(已创建)存储在数组中。但我认为我在循环中遗漏了一些东西。

<?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个值,但是如果我想将所有值放在一个数组中并尝试回显该数组,那么我一直得到空值?

1 个答案:

答案 0 :(得分: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;
}