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 并且我得到了正确的结果。所以查询正在执行,但是在while循环中发生了一些事情。

4

3 回答 3

2

你的while循环很糟糕。取出$函数前面的。

while($r=mysql_fetch_array($getImages)):
于 2012-09-12T14:50:32.097 回答
1
while($r=$mysql_fetch_array($getImages)):
    $img = $r['Caption'];
?>

您在$之前有一个mysql_fetch_array(),删除它应该可以解决您的问题。

于 2012-09-12T14:50:36.670 回答
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 回答