数据库表:
胶片(id\U胶片主键,名称)
流派(id_genrePK,名称)
film_genre(id_filmFK,id_genreFK)
这将输出流派表中的所有流派:
$genremenu = $veza -> prepare("select * from genre");
$genremenu -> execute();
$resultmenu = $genremenu -> fetchALL(PDO::FETCH_OBJ);
这将输出特定电影的电影类型表中的所有选定类型:
$izraz = $veza -> prepare("select * from genre a inner join film_genre b on a.id_genre=b.id_genre where b.id_film=:id_film");
$izraz -> execute(array("id_film" => $film -> id_film));
$selectedgenre = $izraz -> fetchAll(PDO::FETCH_OBJ);
我有一个问题,从数据库输出数据到多个选定的列表中的形式。这是一个电影数据库,我正在进行Foreach迭代,以读取电影流派的所有行,并输出到多个选择字段。但是我在向列表输出“选定”流派时遇到了麻烦。代码是
foreach ($resultmenu as $line) {
foreach ($selectedgenre as $sg) {
if ($line-> id_genre === $sg-> id_genre) {
echo "<option value=\"" . $line-> id_genre . "\" selected>" . $line-> name . "</option>";
} else {
echo "<option value=\"" . $line-> id_genre . "\">" . $line-> name . "</option>";
}
}
}
现在我知道我在selected列表中得到了重复的输出,因为,例如,如果电影有两种类型,比如说喜剧和犯罪,这意味着对于每一个$line,他将重复两次检查$selectedgenre,所以我得到如下输出:
我是新的PHP,所以我问如何获得正确的列表输出没有重复的条目?我尝试了刹车和继续,但不工作或我没有使用它的权利?请帮助并提供(如果可能的话)更多的替代解决方案。谢谢你!
使用循环使其成为唯一数组,如下所示
$out=array();
foreach ($resultmenu as $line) {
$out[$line-> id_genre]=$line;
}
在使用数组之前
或者在select语句中使用distinct(id\u流派)
,或者使用groupbyid\u流派
或者将selectedgenre id_类型放入数组中,而不是foreach
foreach ($selectedgenre as $sg) {
if ($line-> id_genre === $sg-> id_genre) {
使用inray进行检查
你需要在电影中建立一系列你拥有的类型,然后用所有的类型交叉检查它们。
试试这个
<?php
$genres = array();
foreach ($selectedgenre as $sg) {
$genres[] = $sg->id_genre;
}
foreach ($resultmenu as $line) {
if (in_array($line->id_genre,$genres)) {
echo "<option value=\"" . $line->id_genre . "\" selected>" . $line->name . "</option>";
} else {
echo "<option value=\"" . $line->id_genre . "\">" . $line->name . "</option>";
}
}
?>
该代码用于选择题。如果答案不正确,用户应该尝试,直到找到正确的答案。如果答案是正确的,就没有问题,但是如果答案是错误的,那么它就会被卡住,并不断地说“你的答案是错误的!”。我该怎么办?
前面章节中,详细介绍了 3 种形式的条件语句,即 if、if else 和 if elif else,这 3 种条件语句之间可以相互嵌套。 例如,在最简单的 if 语句中嵌套 if else 语句,形式如下: if 表达式 1: if 表示式 2: 代码块 1 else: 代码块 2 再比如,在 if else 语句中嵌套 if else 语句,形式
Swift 条件语句 在 Swift 语言中,你可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 语法 Swift 语言中 嵌套 if 语句的语法: if boolean_expression_1 { /* 当 boolean_expression_1 表达式 true 时执行 */ if boolean_expression_2 {
C++ 判断 在 C++ 中,嵌套 if-else 语句是合法的,这意味着您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 语法 C++ 中 嵌套 if 语句的语法: if( boolean_expression 1) { // 当布尔表达式 1 为真时执行 if(boolean_expression 2) { // 当布尔
在VB.Net中嵌套If-Then-Else语句总是合法的,这意味着你可以在另一个If ElseIf语句中使用一个If或ElseIf语句。 语法 (Syntax) 嵌套If语句的语法如下 - If( boolean_expression 1)Then 'Executes when the boolean expression 1 is true If(boolean_expressi