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 つの値をエコーアウトできるため、値を取得していることはわかっていますが、すべての値を配列に入れてその配列をエコーアウトしようとすると、空の値が取得され続けますか?

4

1 に答える 1

4

あなたはここで多くのことをしようとしているように私には思えます。2 つの値のセットは、互いに関連/リンクする方法で保存されていないため、別々の 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;
}
于 2012-04-26T00:05:22.133 に答える