我修复了问题所以我想分享解决方案。希望这有助于那些想要填充组合框的人。
try{
$conn = new PDO('mysql:host=Jamal-PC;dbname=japanesewords',$username,$password);
$sql ='SELECT id, Englishword FROM Japanesedefinition;';
$stmt = $conn->prepare($sql);
$stmt ->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
select name="Japanese" id="Japanese">
<?php foreach($data as $row) : ?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['Englishword']; ?></option>
<?php endforeach ?>
</select>
答案 0 :(得分:1)
您正在<option>
周围<option>
。您也应该使用PDO::FETCH_COLUMN
,因为您选择的是单个字段。
$data = $stmt->fetchAll(PDO::FETCH_COLUMN);
<select name="Japanese" id="Japanese">
<?php foreach($data as $row) : ?>
<option><?= $row; ?></option>
<?php endforeach ?>
</select>
修改:我看到您更改了查询,现在选择2个字段,而不是仅选择一个。您应该使用PDO::FETCH_KEY_PAIR
,而不是提取列。例如:
<?php $data = $stmt->fetchAll(PDO::FETCH_KEY_PAIR); ?>
<select name="Japanese" id="Japanese">
<?php foreach($data as $k => $v)
printf('<option value="%d">%s</option>', $k, $v); ?>
</select>