0

クエリを配列で埋めようとしています。私が知っているように、関数を使用して配列を表示できますforeach();が、それをmysqlクエリに入れることができません。次のようなことをしようとしています:

<?php
$arr = array("arr_1", "arr_2", "arr_3", "arr_4");

$query = mysql_query("SELECT * FROM users WHERE user = '1'".
foreach($arr as $arr) {
    echo "AND user = '".$arr++."'";
}
." ORDER BY id";
?>

スクリプトはこれを次のように表示する必要があります。
$query = mysql_query("SELECT * FROM users WHERE user = '1' AND user = 'arr_1' AND user = 'arr_2' AND user = 'arr_3' AND user = 'arr_4'");

しかし、これは を入れることができないため機能foreach()しませんmysql_query();
だから私が必要なのは、同じことをするスクリプトです(クエリ文字列の配列を表示します)

ありがとう。

4

2 に答える 2

2

配列から複数の条件を追加する場合は、エコーの代わりに連結を行います

<?php
$arr = array("arr_1", "arr_2", "arr_3", "arr_4");

$query = mysql_query("SELECT * FROM users WHERE user = '1'";
foreach($arr as $id) {
    $query .= "AND user = '".$id."'";
}
$query .= " ORDER BY id";
?>
于 2013-03-18T17:34:16.330 に答える
0

最善の解決策ではありませんが、代替手段は次のとおりです。

$arr = array("arr_1", "arr_2", "arr_3", "arr_4");

$arr_string="'".implode("','", $arr)."'"; // surround values in quotes

$query = mysql_query("SELECT * FROM users WHERE user IN (".$arr_string.") ORDER BY id";
于 2013-03-18T17:44:29.383 に答える