簡體   English   中英

SQL查詢中的While循環

[英]While Loop in SQL query

我不確定為什么此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給我一個錯誤,指出它是不正確的,但沒有告訴我哪里出了問題。

是否可以將while循環放入sql命令?

你不能在字符串中使用一段時間

$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);

(此代碼未經測試)

哇!

你只是不能寫這個: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 ");

echo是輸出字符串,它不會返回字符串。

$str = "aaa" . echo "bbb"; $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).")");

或使用

"SELECT * FROM table WHERE name IN(".implode( ',', $array).")";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM