在动态页面上使用PHP while循环将不起作用

时间:2015-05-16 11:11:33

标签: php mysql while-loop

我试图在动态页面上使用while循环显示所有内容,但它根本不会显示任何内容..

if (isset($_GET['id'])) {
      $genre = $_GET['id'];
      $sql = "SELECT * FROM movstream_genre WHERE ID = '$genre'";
      $result = $db->query($sql);
      $row = $result->fetch_assoc();
}else{
     $sql = "SELECT ID, genre FROM movstream_genre";
     $result = $db->query($sql);
}

<html>
<body>
<ul>
    <?php while ( $row = $result->fetch_assoc() ): ?>
    <li><a href="genre?id=<?=$row['ID'];?>"><?=$row['genre'];?></a></li>
    <?php endwhile; ?>
</ul>
</body>
</html>

任何人都知道为什么它不会在动态页面上显示任何内容,但如果页面不是动态的,它可以正常工作:)

感谢。

4 个答案:

答案 0 :(得分:1)

如果动态页面意味着您在Url中发送id,则表示您未获得结果。 我认为问题在于您在$row = $result->fetch_assoc();条件下使用if以及在while中使用 Label lblTitle = new Label() { BackgroundColor = new Color(0, 0, 0, 0.8), LineBreakMode = LineBreakMode.WordWrap, FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label)) }; lblTitle.SetBinding(Label.TextProperty, "headline"); Image imgBanner = new Image() { /* HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.End, Aspect = Aspect.Fill */ }; imgBanner.SetBinding(Image.SourceProperty, "ImageUrlSource"); AbsoluteLayout.SetLayoutFlags(lblTitle, AbsoluteLayoutFlags.PositionProportional | AbsoluteLayoutFlags.WidthProportional); AbsoluteLayout.SetLayoutBounds(lblTitle, new Rectangle(0, 1, 1, AbsoluteLayout.AutoSize)); AbsoluteLayout.SetLayoutFlags(imgBanner, AbsoluteLayoutFlags.SizeProportional); AbsoluteLayout.SetLayoutBounds(imgBanner, new Rectangle(0, 0, 1, 1)); AbsoluteLayout layout = new AbsoluteLayout() { HorizontalOptions = LayoutOptions.Fill, Children = { imgBanner, lblTitle } }; View = layout; 。 请在一个地方使用取物。最好是在while循环中。 希望它有所帮助。

答案 1 :(得分:0)

请回复结果...

<li><a href="genre?id=<?php echo $row['ID'];?>"><?php echo $row['genre'];?></a></li>

而在href中,它只是流派OR genre.php

在第一个查询..

$sql = "SELECT * FROM movstream_genre WHERE ID = '$genre'";
$result = $db->query($sql);
$row = $result->fetch_assoc();// this line not required

评论此行 $ row = $ result-&gt; fetch_assoc();

答案 2 :(得分:0)

我想通了

if (isset($_GET['id'])) {
$genre = $_GET['id'];

$sql = "SELECT ID, genre FROM movstream_genre";
$result = $db->query($sql);
}

这是它在动态页面时需要看的方式:) 我认为它现在有效。

答案 3 :(得分:0)

看起来您没有在<?php ?>代码中附上PHP代码的第一部分