0

こんにちは、xml の結果のリストを調べようとしています。これらの結果から ID を取得し、データベースでクエリを実行して詳細情報を取得しています。これを foreach ループに入れてから、while ループで mysql の結果を取得します。while ループを実行するまで、すべてが機能します。私のページは空白になり、エラーは発生しません..どんな助けでも大歓迎です! これが私のコードです:

foreach($data->HotelList->HotelSummary as $info):
    $hotelId = $info->hotelId;
    $title=$info->name;

?>
<!---------------------------------------------------------------------->
<!-----------------Listed hotel results div----------------------------->
<!---------------------------------------------------------------------->
<div class="listResults">

    <div class="hotelListing">
    <div class="hotelThumb">
    <?php 
    //----------Getting thumb url from database by HotelId-------
    $getImages = mysql_query("SELECT Caption FROM HotelImages WHERE ID = '4110'") or die(mysql_error());
    while($r=$mysql_fetch_array($getImages)):
        $img = $r['Caption'];
    ?>
    <img src="" width="200" height="180" alt="test image" class="thumb" />
    <?php endwhile; ?></div>
<?php endforeach; ?>

念のため、num_rows を取得しようとしましたが、正しい結果が得られました。SO クエリは実行中ですが、while ループで何かが発生しています。

4

3 に答える 3

2

while ループが悪いです。$関数の前を取り出します。

while($r=mysql_fetch_array($getImages)):
于 2012-09-12T14:50:32.097 に答える
1

主な問題は$、メソッド呼び出し($mysql_fetch_array())の前にを置くことです。それはただであるはずですmysql_fetch_array()

見逃してはならない重要な問題は、ループ内で静的クエリが呼び出されていることです。結果は変更されないため、ループの外側でクエリを実行します。次に、結果を配列に格納し、ループ内で配列を反復処理できます。これにより、コードのパフォーマンスが大幅に向上します。

<?php
//----------Getting thumb url from database by HotelId-------
$getImages = mysql_query("SELECT Caption FROM HotelImages WHERE ID = '4110'") or die(mysql_error());

$images = array();
while($img = mysql_fetch_array($getImages)) {
    $images[] = $img['Caption'];
}

foreach($data->HotelList->HotelSummary as $info):
    $hotelId = $info->hotelId;
    $title=$info->name;

?>
<!---------------------------------------------------------------------->
<!-----------------Listed hotel results div----------------------------->
<!---------------------------------------------------------------------->
<div class="listResults">

    <div class="hotelListing">
    <div class="hotelThumb">
    <?php 

    foreach($images as $img) :
    ?>
    <img src="" width="200" height="180" alt="test image" class="thumb" />
    <?php endforeach; ?></div>
<?php endforeach; ?>
于 2012-09-12T14:59:05.020 に答える
1
while($r=$mysql_fetch_array($getImages)):
    $img = $r['Caption'];
?>

$前にがあり、それmysql_fetch_array()を削除すると問題が解決するはずです。

于 2012-09-12T14:50:36.670 に答える