以下代码应该为在autoren_werke表中找到的每一行在select-inpupt字段内创建另一个html-option-field。
但是发生的是,无论autoren_werke表包含多少条目,输出都是一个选项字段。
我不知道为什么它不能与foreach循环一起使用,但显然不行。怎么了?
<?php
$holeIdVonAutorenWerke = "SELECT * FROM autoren_werke";
$resultholeIdVonAutorenWerke = mysqli_query($db, $holeIdVonAutorenWerke);
foreach($resultholeIdVonAutorenWerke as $row) {
$autor_id = $row['autor_id'];
$werk_id = $row['autor_id'];
$holeAutorenInfos = "SELECT vornamen, nachname, weitere FROM autoren WHERE id = $autor_id";
$holeAutorInfosResult = mysqli_query($db, $holeAutorenInfos);
$autorenInfos = mysqli_fetch_row($holeAutorInfosResult);
$holeWerkeInfos = "SELECT werk_titel FROM werke WHERE id = $werk_id";
$holeWerkInfosResult = mysqli_query($db, $holeWerkeInfos);
$werkInfos = mysqli_fetch_row($holeWerkInfosResult);
$option = "<option> $autorenInfos[0] $autorenInfos[1] $autorenInfos[2] $werkInfos[0] </option>";
}
?>
<select>
<?php echo $option ?>
</select>
答案 0 :(得分:1)
您需要一次读取一条记录/行。然后将数据连接到$ option
// set option to a blank string
$option = '';
// using fetch array to get rows from the DB one at a time
while($row = fetch_array(resultholeIdVonAutorenWerke)){
// note the .= to concatenate the option data
$option .= "<option> $autorenInfos[0] $autorenInfos[1] $autorenInfos[2] $werkInfos[0] </option>";
}