0

これにデータを出力するフォームがあります:

index.php?city=ADDIEVILLE&city=ALBERS&city=ALHAMBRA

次に、次のようなmysqlwhereステートメントに入る必要があります。

WHERE CITY = ADDIEVILLE OR CITY = ALBERS OR CITY = ALHAMBRA

PHPを使用してこれらの複数の都市をmySQLクエリに渡すにはどうすればよいですか?

4

2 に答える 2

3

index.php?city=ADDIEVILLE&city=ALBERS&city=ALHAMBRA

次のように印刷されます:$_GET['city']='ALHAMBRA';

一方:

index.php?city[]=ADDIEVILLE&city[]=ALBERS&city[]=ALHAMBRA

配列として出力します。

次に、これを次のように変換できます。

$cities = $_GET['city'];

$str = "CITY='".implode("' OR CITY='",$cities)."'";
echo $str;

注:$cities注射のために消毒する必要があります。

于 2013-01-03T20:00:07.473 に答える
1

@MichaelBerkowskiが言うように、フィールド名として使用する必要があります。そうすればcity[]、次のようなことができます。

$dbh = new PDO("mysql:dbname=$dbname", $username, $password);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);

$qry = $dbh->prepare('
  SELECT *
  FROM   my_table
  WHERE  CITY IN ('.implode(',', array_fill(0, count($_GET['city']), '?')).')
');

$qry->execute($_GET['city']);
于 2013-01-03T20:01:13.170 に答える