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

編集:クエリを変更して、1 つではなく 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 に答える