2012-04-12 11 views
0

私は現在MySQLを使用しているPHPファイルを持っており、結果は00:00から23:00(これは時刻表です)に戻るはずですが、01: 00 23時まで:PHPのMySQLクエリが真の結果を返さない

<?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); 


?> 

誰が原因whileループ、二重にあなたが最初の結果を上書きしているいくつかの光

+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年前に返します。

2つではなくwhile($row = mysql_fetch_array($result))が必要です。

+0

表示していました返されたすべてのコンテンツを1つの下に置きます。<description>すべてのコンテンツ</ description> Shoier

+0

最終的な出力をどのようにしたいのかよく分かりませんが、ループ中に削除した後に再フォーマットする必要があります。私が知っていることは、公開されたコードでは、最初の結果と内部whileループがすべての作業をやっていることです。外側の結果は1つの結果を失うことを除いて何もしません。内側のループの結果はすべて要素に出力されます。 – drew010

関連する問題