ComboBox PHP PDO类根本没有填充,但留下空白占位符

时间:2013-09-17 03:37:46

标签: php pdo

我修复了问题所以我想分享解决方案。希望这有助于那些想要填充组合框的人。

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>

1 个答案:

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