1

変数から派生したデータを取得するために、php でプロセスを実行するのを手伝ってください。この場合、xml ファイルを作成するための php ファイルを作成しました。ここにデータ、つまりチャネルがあり、そのチャネルのすべての親が私の子供にデータを入力するようにします。私のコードを見てください:

<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "db_epg";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);


$sql = "select distinct(channel_name) FROM epg";
$q   = mysql_query($sql) or die(mysql_error());
$xml = "<timetable start='00:00' end='24:00' title='Friday, September 28th, 2011'>";

while($r = mysql_fetch_array($q)){
     $CN   = $r['channel_name'];
     $xml .= "<channel>".$CN."</channel>";  


}   

    $xml .= "</timetable>";
    $sxe = new SimpleXMLElement($xml);
    $sxe->asXML("epg.xml");

    ?>

私のコードの結果は次のとおりです。http://s9.postimage.org/rjsodf9mn/result.png

各データチャネルでループを実行したい場合は、子にデータがありません。どうすればよいですか?

このwhileセクションで別のクエリを実行してみました:

while($r = mysql_fetch_array($q)){
$CN         = $r['channel_name'];
$xml .= "<channel>".$CN."</channel>";   

$sql2 = "select * FROM epg where channel_name='".$CN."'";
$q2  = mysql_query($sql2) or die(mysql_error());

while($r2 = mysql_fetch_array($q2)){
    $Mulai      = date('H:i', strtotime($r2['waktu_mulai']));
    $Selesai    = date('H:i', strtotime($r2['waktu_akhir']));
    $Title      = $r2['judul'];
    $Desk       = $r2['sinopsis'];

      $xml .= "<event start='".$Mulai."' end='".$Selesai."'>";
      $xml .= "<title>".$Title."</title>";
      $xml .= "<description>".$Desk."</description>"; 
      $xml .= "</event>";   
    }


}

しかし、私は失敗しました。誰かが私を助けることができますか??

4

1 に答える 1

2

以下のようにコードを変更してみてください。試す機会がなかったので、構文エラーを確認してください:)

while ($r = mysql_fetch_array($q)) {
   // open channel header
   $CN  = $r['channel_name'];
   $xml .= "<channel name='".$CN."'>";   

   // event details for channel
   $sql2 = "select * FROM epg where channel_name='".$CN."'";
   $q2  = mysql_query($sql2) or die(mysql_error());
   while($r2 = mysql_fetch_array($q2)) {
      $Mulai      = date('H:i', strtotime($r2['waktu_mulai']));
      $Selesai    = date('H:i', strtotime($r2['waktu_akhir']));
      $Title      = $r2['judul'];
      $Desk       = $r2['sinopsis'];
      $xml .= "<event start='".$Mulai."' end='".$Selesai."'>";
      $xml .= "<title>".$Title."</title>";
      $xml .= "<description>".$Desk."</description>"; 
      $xml .= "</event>";   
   }

   // close channel
   $xml .= "</channel>";   
}

コードはこちらコードはこちら

于 2012-09-28T02:45:39.483 に答える