2012-04-12 3 views
0

현재 MySQL을 사용하는 PHP 파일이 있는데 00:00에서 23:00 (결과는 시간표입니다)의 결과가 반환되지만, 01 : 00 23 : 00 :PHP에서 MySQL 쿼리가 true 결과를 반환하지 않습니다.

<?PHP 
include("../panel/config.php"); 
#// Timetable Clearup Variabls 

$yesterday = strtotime('yesterday'); 
$yesterdow = date('l',$yesterday); 
$order = "SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time LIMIT 0 , 30"; 
$result = mysql_query($order); 
$yesterdayd = date('F jS, Y', time()-86400); 

    //SET XML HEADER 
    header('Content-type: text/xml'); 

    //CONSTRUCT RSS FEED HEADERS 
    $output = '<rss version="2.0">'; 
    $output .= '<channel>'; 
    $output .= "<title>Timetable - {$yesterdayd} </title>"; 
    $output .= '<description>Timetable.</description>'; 
     $output .= '<link>http://www.site.com</link>'; 
    while ($row = mysql_fetch_array($result)) { 
    //BODY OF RSS FEED 

    $output .= "<item><title>Timetable - {$yesterdayd}</title> 
    <description>"; 
while ($row=mysql_fetch_array($result)) 
{ 
     $rowset[] = $row; 
    //BODY OF RSS FEED 
    $output .= htmlspecialchars($row['time']) . " " . htmlspecialchars($row['username']) . "<br/>"; 
} 
$output .= '</description></item> '; 
} 
    //CLOSE RSS FEED 
    $output .= '</channel>'; 
    $output .= '</rss>'; 

    //SEND COMPLETE RSS FEED TO BROWSER 
$filename = "timetable.xml"; 

       if (!$handle = fopen($filename, 'w')) { 
      echo "Cannot open file ($filename)"; 
      exit; 
      } 

      // Write $somecontent to our opened file. 
      if (fwrite($handle, $output) === FALSE) { 
      echo "Cannot write to file ($filename)"; 
      exit; 
      } 

      if (fwrite($handle, $total) === FALSE) { 
      echo "Cannot write to file ($filename)"; 
      exit; 
      } 

      echo "Success, wrote {$content}{$total} to file ($filename)"; 

      fclose($handle); 


?> 

사람이 때문에 루프 동안 두 번에 당신은 첫 번째 결과를 덮어 일부 빛

+0

이 숙제가 있습니까? 누군가 비슷한 것을 올렸습니다 ... http://stackoverflow.com/questions/10111956/display-results-from-mysql-query-into-table-using-php/10112101#10112101 –

+0

'$ yesterdow'의 값은 무엇입니까? 귀하의 SQL 쿼리에? – Lion

+0

데이터베이스 테이블에 가정으로 반환 할 적절한 값이 있습니까? – Lion

답변

1

있나.

while ($row = mysql_fetch_array($result)) { 
    //BODY OF RSS FEED 

    $output .= "<item><title>Timetable - {$yesterdayd}</title><description>"; 
    while ($row=mysql_fetch_array($result)) 
    { 
     // First $row result is now overwritten before you used it 
     // ... 

또한, date('Y-m-d') 대신 date('l') 사용할 수 있습니다. 나는 당신의 하루 칼럼이 무엇인지 알지 못하지만, date('l')은 어제 화요일과 지난 화요일과 화요일 5 년 전을 구별하지 않는 날의 이름을 반환합니다.

두 개 대신 while($row = mysql_fetch_array($result)) 하나만 있으면됩니다.

+0

while 루프 중 하나를 제거하면 내용이 개별적으로 으로 감싸지며 반면 while은 while 루프를 사용할 때 반환 된 모든 내용을 하나의 밑에 놓습니다. <description> 전체 내용</ description> Shoier

+0

최종 출력물을 원하는 내용으로 잘 모르겠지만 루프를 제거한 후 다시 포맷해야합니다. 내가 아는 전부는 코드에 게시 된 것이므로 첫 번째 결과가 손실되고 내부 while 루프가 모든 작업을 수행하고 있다는 것입니다. 바깥 쪽은 하나의 결과를 잃고 모든 내부 루프 결과를 하나의 요소에 인쇄하는 것 외에는 아무 것도하지 않습니다. – drew010

관련 문제