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

Using PHP while loop on a dynamic page won't work

我试图在动态页面上用 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>

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

谢谢。

如果动态页面意味着您在 Url 中发送 id 而您没有得到结果。 我认为问题在于您在 if 条件下以及同时使用 $row = $result->fetch_assoc();。 请在一个地方使用抓取。最好在 while 循环中。 希望对你有帮助。

请回显结果...

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

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

在第一个查询中..

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

评论这一行 $row = $result->fetch_assoc();

我想通了

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

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

这就是动态页面需要的样子:) 好吧,我想是的,现在可以了。

您似乎没有在 <?php ?> 标签

中包含 PHP 代码的第一部分