-2

我解决了这个问题,所以我想分享解决方案。希望这可以帮助想要填充组合框的人。

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

1 回答 1

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>
于 2013-09-17T03:40:49.717 回答