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