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

+0

event_idを共有キーとして使用していますか? –

+0

詐欺に同意します。 2つのテーブルが "eventid"またはその性質のものによって関連づけられる場合、結合を行い、要約を取得し、1つのクエリで作成するほうがよいでしょう。こうすることで、リンクされたペアとしてそれらを保存して操作することができます。 – davesnitty

答えて

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; 
} 
+0

+1、内側のループを除きます。配列を別の配列にコピーするだけです。これは不要です。 – deceze

関連する問題