我的代码一直显示:
而不是显示数据库记录。
<tr><td>Wie is jou favoriete popgroep? </td>
<td><select>
<?php
$sql="SELECT band,bandid FROM bands order by band";
foreach ($result->query($sql) as $row){
echo "<option value=$row[bandID]>$row[band]</option>";
}
?>
</select>
</td></tr>
我的数据库:
为什么它一直说$row[band]
而不是我的数据库中的记录?
答案 0 :(得分:0)
这是在字符串定义中错误放置变量的问题。
这不起作用:echo "<option value=$row[bandID]>$row[band]</option>";
...而是使用其中之一:
echo "<option value=\"" . $row['bandID'] . "\">\"" . $row['band'] . "\"</option>";
或者这个替代符号:
echo "<option value=\"{$row['bandID']}\">\"{$row['band']}\"</option>";
如果事情变得更复杂,这也可能会派上用场:
echo sprintf(
'<option value="%s">"%s"</option>',
$row['bandID'],
$row['band']
);
如果你对该数组的内容有100%的确定性,你还需要在将它们插入html标记时转义值:
echo sprintf(
'<option value="%s">"%s"</option>',
htmlspecialchars($row['bandID']),
htmlspecialchars($row['band'])
);
答案 1 :(得分:0)
尝试:
echo '<option value="'.$row['bandID'].'">'.$row['band'].'</option>';
答案 2 :(得分:-1)
在foreach中使用引号,同时将$conn
替换为变量
<强>被修改强>
<tr><td>Wie is jou favoriete popgroep? </td>
<td><select>
<?php
$sql="SELECT Band,BandID FROM bands order by band";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
// output data of each row
while($row = $result->fetch_assoc())
{
echo "<option value=".$row['BandID'].">".$row['Band']."</option>";
}
}
?>
</select>
</td></tr>