MySQL数据库连接到droplist

时间:2016-04-15 09:31:31

标签: php mysql mysqli

我的代码一直显示:

enter image description here

而不是显示数据库记录。

<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>

我的数据库:

enter image description here

为什么它一直说$row[band]而不是我的数据库中的记录?

3 个答案:

答案 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>