Php 而循环和foreach循环不能像预期的mvc应用程序那样工作
我有一张桌子,里面放着一堆电影,我想把它们全部放出来。但是我的循环出了点问题,所以我刚拍了第一部电影 这是我电影模型中的代码Php 而循环和foreach循环不能像预期的mvc应用程序那样工作,php,foreach,while-loop,Php,Foreach,While Loop,我有一张桌子,里面放着一堆电影,我想把它们全部放出来。但是我的循环出了点问题,所以我刚拍了第一部电影 这是我电影模型中的代码 public function getMovieList() { $test = new DbConnection(); $dbh = $test->dbcon('localhost', 'root', '6662257', 'mvc'); $sql = $dbh->prepare("SELECT * FROM
public function getMovieList() {
$test = new DbConnection();
$dbh = $test->dbcon('localhost', 'root', '6662257', 'mvc');
$sql = $dbh->prepare("SELECT * FROM movies ORDER BY movie_id");
$sql->execute();
while($row = $sql->fetch()){
$title = $row['movie_title'];
$description = $row['movie_des'];
$link = $row['movie_link'];
return array(
$title => new Movie($title, $description, $link)
);
}
}
这是我的电影列表中的代码:
echo '<h1>Movies of 2014</h1>';
foreach ($movies as $title => $movie) {
echo '<div class="content"><a href="index.php?movie='.$movie->title.'">'.$movie->title.'</a><br/>'.$movie->description.'</div>';
}
echo“2014年电影”;
foreach($title=>$movie形式的电影){
回显“
”。$movie->description.”;
}
它仍然是我数据库中的第一部电影的回声。我是MVC新手,所以我不知道问题出在哪里。我感谢任何类型的帮助。您正在循环中使用
返回。这将导致函数结束,因此只返回查询中的第一部电影
提取到这样的东西,你会很高兴去
public function getMovieList() {
$test = new DbConnection();
$dbh = $test->dbcon('localhost', 'root', '6662257', 'mvc');
$sql = $dbh->prepare("SELECT * FROM movies ORDER BY movie_id");
$sql->execute();
$movies = array();
while($row = $sql->fetch()){
$title = $row['movie_title'];
$description = $row['movie_des'];
$link = $row['movie_link'];
$movies[$title] = new Movie($title, $description, $link);
}
return $movies;
}
您只返回while循环的第一次迭代,考虑填充数组并返回:
$movies = array();
while($row = $sql->fetch()){
$title = $row['movie_title'];
$description = $row['movie_des'];
$link = $row['movie_link'];
$movies[] = new Movie($title, $description, $link);
}
return $movies;
你必须是新的功能,而不是MVC:)
函数只有一个返回值
for ($i = 0; $i<1000; $i++) {
return $i;
}
添加一些上下文来解释为什么这是有效的。只能从函数返回一次。因此,您需要构建一个包含所有电影对象的数组,并返回它。我明白了,我不知道呵呵。这个结果绝对完美,非常感谢,我会尽快接受你的回答@ThomasRuiz$movies是数组,而不是对象:)您必须返回$movies而不使用()
,这与MVC模式无关。
while (condition) {
$movie[$title] = new Movie($title, $description, $link)
}
return $movie;