1

クエリで最初に c_id>0 のすべてのレコードを返し、テキスト ボックスで指定された後続の条件に基づいてフィルター処理するようにします。ただし、ページに初めてアクセスしたときにレコードが印刷されません。コードは次のとおりです。

$ctitle = mysql_real_escape_string($_POST['ctitle']);
$csubject = mysql_real_escape_string($_POST['csubject']);
$creference = mysql_real_escape_string($_POST['creference']);
$cobjecttype = mysql_real_escape_string($_POST['cobjecttype']);
$cmaterial = mysql_real_escape_string($_POST['cmaterial']);
$ctechnic = mysql_real_escape_string($_POST['ctechnic']);
$cartist = mysql_real_escape_string($_POST['cartist']);
$csource = mysql_real_escape_string($_POST['csource']);

    $sql = "SELECT * FROM collections WHERE (
    c_id>0 AND
    `ctitle` LIKE '{$ctitle}' AND
    `csubject` LIKE '{$csubject}' AND
    `creference` LIKE '{$creference}' AND
    `cobjecttype` LIKE '{$cobjecttype}' AND
    `cmaterial` LIKE '{$cmaterial}' AND
    `ctechnic` LIKE '{$ctechnic}' AND
    `csource` LIKE '{$csource}' AND
    `cartist` LIKE '{$cartist}'
    )ORDER BY c_id DESC";

クエリをエコーすると、代わりに次のように出力されます。

request "Could not execute SQL query" SELECT * FROM collections WHERE ( c_id>0 AND `ctitle` LIKE '' AND `csubject` LIKE '' AND `creference` LIKE '' AND `cobjecttype` LIKE '' AND `cmaterial` LIKE '' AND `ctechnic` LIKE '' AND `csource` LIKE '' AND `cartist` LIKE '' )ORDER BY c_id DESC

ここからどこへ行けばいいですか?

4

3 に答える 3

0

2 つの where 句要素を囲む中括弧は必要ありません。

于 2013-04-10T06:40:04.997 に答える
0

)との間にスペースを入れるORDER BY

于 2013-04-10T06:38:57.093 に答える