Php 电影数据库中的列表,超链接不';行不通
我正在制作一个电影数据库网站。我想列出100部电影,当你点击其中一部电影时,你会得到关于特定电影的更多信息 我正在使用一个大型电影数据库,这是我的查询:Php 电影数据库中的列表,超链接不';行不通,php,mysql,database,Php,Mysql,Database,我正在制作一个电影数据库网站。我想列出100部电影,当你点击其中一部电影时,你会得到关于特定电影的更多信息 我正在使用一个大型电影数据库,这是我的查询: public function selectAll() { $sql = "SELECT * FROM `movies` LIMIT 200"; $stmt = $this->pdo->prepare($sql); $stmt->execute(); return $stmt->fetc
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&id={$movie['id']}>{$movie['title']}</a></li>";
}
}
echo "</ol>";
?>
当我运行这个程序时,我在HTML中得到了一个奇怪的结果:
<a href="index.php?page=detail&id=1>Avatar</a></li><li><a href=" index.php?page="detail&id=2">Pirates of the Caribbean: At World's End</a>
a href真的搞砸了,我不知道我做错了什么 您忘了在URL末尾添加一个转义双引号。这应该是这样的:
// here --v
echo "<li><a href=\"index.php?page=detail&id={$movie['id']}\">{$movie['title']}</a></li>";
//这里--v
回声“”;
使用HTML5,您可以为属性值添加引号,如下所示
:
echo“”;
能否检查$movies
的值?在foreach
loopecho''中测试这一点。印刷品($movie,true)。”代码>这可能是由于标题中的引号弄乱了字符串,请尝试在PHP函数中包装标题,将每个字符转义为HTML友好字符。@AymDev我照你说的做了,只有id=1,3,5,7,9的电影。。。。你没拿到头衔吗?是的。我只从id=1,3,5,7,9的电影中获得标题。
echo "<li><a href=index.php?page=detail&id={$movie['id']}>{$movie['title']}</a></li>";