从电影数据库的php列表,超链接不起作用

holgip5t  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(382)

我在制作一个电影数据库网站。我想列一个有100部电影的列表,当你点击其中一部电影时,你会得到关于特定电影的更多信息。
我正在使用一个大的电影数据库,这是我的查询:

public function selectAll() {
    $sql = "SELECT * FROM `movies` LIMIT 200";
    $stmt = $this->pdo->prepare($sql);
    $stmt->execute();
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
  }

这是我在控制器中所做的:

class MoviesController extends Controller {

  private $movieDAO;

  function __construct() {
    $this->movieDAO = new movieDAO();
  }

  public function index() {
    $this->set('movies', $this->movieDAO->selectAll());
  }

这就是我在索引中所做的:

<?php
     echo "<ol>";
      if(!empty($movies)) {
        foreach($movies as $movie){
         echo "<li><a href=\"index.php?page=detail&amp;id={$movie['id']}>{$movie['title']}</a></li>";
              }
          }
     echo "</ol>";
      ?>

当我运行这个程序时,我在html中得到了一个奇怪的结果:

<a href="index.php?page=detail&amp;id=1&gt;Avatar&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=" index.php?page="detail&amp;id=2">Pirates of the Caribbean: At World's End</a>

a href真的搞砸了,我不知道我做错了什么。

qnakjoqk

qnakjoqk1#

你忘了在url的末尾加上转义的双引号。这应该是这样的:

//                                                      here --v
echo "<li><a href=\"index.php?page=detail&amp;id={$movie['id']}\">{$movie['title']}</a></li>";

使用html5,您可以为属性值添加引号,如下所示:

echo "<li><a href=index.php?page=detail&amp;id={$movie['id']}>{$movie['title']}</a></li>";

相关问题