0

このSQLクエリが機能しない理由がわかりません。

私はSQL/PHPを初めて使用するので、ご容赦ください。

mysql_query("
    SELECT * FROM table WHERE name = " . "'Bob'" . 
    while($i < $size)
    {
        $i++; 
        echo "OR name = '"; 
        echo $array[$i] . "'";
    } . 
    " ORDER BY id DESC "
);

Dreamweaverから、正しくないというエラーが表示されますが、何が問題なのかはわかりません。

SQLコマンドにwhileループを入れることは可能ですか?

4

4 に答える 4

2

文字列でしばらく使用することはできません

$where = "";
if ($size > 0) 
{
$where .= " WHERE ";
}
while($i < $size)
{
$i++;
$where .= "OR name = '".$array[$i]."' ";
}

$query = "SELECT * FROM table WHERE name = '".Bob."'".$where." ORDER BY id DESC";
mysql_query($query);

(このコードはテストされていません)

于 2012-06-27T08:27:18.550 に答える
2

うわー!

あなたはこれを書くことはできません:D

ORクエリを作成する前に条件を作成してください。問題はありません。

$myCondition = " ";
while($i < $size) {
    $i++;
    $myCondition .= "OR name = '" . $array[$i] . "'";
}
mysql_query(
    "SELECT * FROM table WHERE name = " . "'Bob'" . $myCondition . " ORDER BY id DESC ");
于 2012-06-27T08:28:29.483 に答える
0

echo文字列を出力することであり、文字列を返しません。

のようなもの$str = "aaa" . echo "bbb";は動作しません。

あなたの場合、使用INはより良いでしょう。

foreach ($array as &$name) {
  $name = "'".mysql_real_escape_string($name)."'";
}
mysql_query("SELECT * FROM table WHERE name IN (".implode(',', $array).")");
于 2012-06-27T08:28:05.303 に答える
0

または使用する

"SELECT * FROM table WHERE name IN(".implode( ',', $array).")";
于 2012-06-27T08:34:19.377 に答える