1

次のような複数選択のフォームがあります。

<select name="states[]" size="5" multiple>
    <option value="2">state 1</option>
    <option value="3">state 2</option>
    <option value="4">state 3</option>
    <option value="5">state 4</option>
    <option value="6">state 5</option>
</select>

複数の州を選択できるようにしてから、データベースにクエリを実行し、選択した各州の説明を表示したいと考えています。

これは、PHP と MySQL を使用してクエリを作成する必要があるものです。

$state = $_POST['states'];
$data = mysql_query("SELECT * from states WHERE id_state = '$state'",$db); 

while($row = mysql_fetch_array($data)){
    $result=$row['description'];
}

echo $result;

私はそのコードを持っていますが、何も表示されません。

この問題を解決するにはどうすればよいですか?

4

5 に答える 5

1

これには、配列を簡単foreachに調べて、各値に基づいて結果を取得する必要があります。

foreach($_POST['states'] as $state) {
    $data = mysql_query("SELECT * from states WHERE id_state = '$state'",$db);
    $row = mysql_fetch_array($data);
    echo $row['description'];
}

また、何らかの形でクエリを保護しておらず、PHP 5.5.0 で廃止されたmySQLを使用しているため、 PDOまたはmySQLi Prepared ステートメントを調べることをお勧めします。

于 2013-04-23T02:11:58.827 に答える