質問

この質問は PHPの複数ドロップダウンボックスフォームに送信するMySQLに似ています、しかしひねりを加えた。

PHPバックエンドに送信されるHTML複数選択があると仮定しましょう。

複数選択の値にOR条件を指定してmysqlリクエストをエレガントに作成するにはどうすればよいですか?

たとえば、スポーツのリストを含む複数選択があります。 方法:

SELECT * FROM sports WHERE sport.name=:sport1 OR sport.name=:sport2 OR sport.name=:sport3...
役に立ちましたか?

解決

これはテストされていない、単なるアイデアです...

これはテストされていない、単なるアイデアです...

<*>POST['sports'] = array('basketball', 'baseball', 'football', 'soccer'); $sql = sprintf("SELECT * FROM sports WHERE sport.name IN (%s)", implode( ',', array_fill(1,count(

これはテストされていない、単なるアイデアです...

<*>POST['sports']), '?') ) ); // SELECT * FROM sports WHERE sport.name IN (?,?,?,?) $st = $dbh->prepare($sql); // bind all values foreach(

これはテストされていない、単なるアイデアです...

<*>POST['sports'] as $i => $sport) { $st->bindValue( ++$i, $sport ); } $st->execute();

他のヒント

SELECT * FROM sports WHERE sports.name IN ('football','hockey','soccer','trolling');
SELECT * FROM sports WHERE sport.name IN (basketball,baseball,football,soccer)

結果は次のとおりです

<*>POST['sports'] = array('basketball', 'baseball', 'football', 'soccer'); $sql = sprintf("SELECT * FROM sports WHERE sport.name IN (%s)", implode(',', <*>

結果は次のとおりです

<*>POST['sports']));

結果は次のとおりです

<*>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top