我有一些代码可以根据按下单选按钮显示某些内容。
如果选择no,则会隐藏status_id为15的表中的条目。 选择yes时,它会在status_id为15
的表中显示条目 if($_REQUEST['statusVal']=="") {
$condition1= " AND MO.status_id <>'15'";
}
if($_REQUEST['statusVal']=="archive") {
$condition1 =" ";
} if($_REQUEST['statusVal']=="all") {
$condition1= " AND MO.status_id <>'15'";
}
$mode = $_REQUEST['mode'];
$mode_toggle = $_REQUEST['mode_toggle'];
$sql="SELECT MO.ssrs_id,MO.member_id,MO.assr_user_id,MO.product_id,MO.component_id,MO.status_id,MO.summary,MO.priority,V.product_name,M.component,T.name,S.statusTitle,S.flag_id FROM ".ASSR_SSRS." MO,".PRODUCTS." V,".PROD_COMPONENTS." M,".ASSR_USER." T ,".ASSR_STATUS." S WHERE MO.product_id=V.product_id AND MO.assr_user_id=T.assr_user_id AND MO.component_id=M.component_id AND MO.status_id=S.status_id AND MO.member_id='$memberID' ORDER BY MO.lastupdate DESC".$condition1;
$row_count = getRowCount($sql);
$sql .= $GLOBALS[sql_page];
$result=mysql_query($sql) or die(mysql_error());
我在网络浏览器上显示此错误(使用最新的Chrome)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND MO.status_id <>'15' LIMIT 0,10' at line 1
请帮帮我
答案 0 :(得分:1)
您正在ORDER BY
子句之后添加条件,这是错误。
以下是更正后的SQL:
$sql="SELECT MO.ssrs_id,MO.member_id,MO.assr_user_id,MO.product_id,MO.component_id,
MO.status_id,MO.summary,MO.priority,V.product_name,M.component,T.name,
S.statusTitle,S.flag_id FROM ".ASSR_SSRS." MO,".PRODUCTS."
V,".PROD_COMPONENTS." M,".ASSR_USER." T ,".ASSR_STATUS." S WHERE
MO.product_id=V.product_id AND MO.assr_user_id=T.assr_user_id AND
MO.component_id=M.component_id AND MO.status_id=S.status_id AND
MO.member_id='$memberID' " . $condition1 . "ORDER BY MO.lastupdate DESC";
答案 1 :(得分:1)
这是您的查询
$sql="
SELECT
MO.ssrs_id,
MO.member_id,
MO.assr_user_id,
MO.product_id,
MO.component_id,
MO.status_id,
MO.summary,
MO.priority,
V.product_name,
M.component,
T.name,
S.statusTitle,
S.flag_id
FROM ".ASSR_SSRS." MO,".PRODUCTS." V,".PROD_COMPONENTS." M,".ASSR_USER." T ,".ASSR_STATUS." S
WHERE
MO.product_id=V.product_id
AND MO.assr_user_id=T.assr_user_id
AND MO.component_id=M.component_id
AND MO.status_id=S.status_id
AND MO.member_id='$memberID'
ORDER BY MO.lastupdate DESC".$condition1;
在这里,您要在最后附加动态条件,如果您有$condition1
某些条件
order by MO.lastupdate DESC AND MO.status_id <>'15'
因此语法错误
应该是
$sql="
SELECT
MO.ssrs_id,
MO.member_id,
MO.assr_user_id,
MO.product_id,
MO.component_id,
MO.status_id,
MO.summary,
MO.priority,
V.product_name,
M.component,
T.name,
S.statusTitle,
S.flag_id
FROM ".ASSR_SSRS." MO,".PRODUCTS." V,".PROD_COMPONENTS." M,".ASSR_USER." T ,".ASSR_STATUS." S
WHERE
MO.product_id=V.product_id
AND MO.assr_user_id=T.assr_user_id
AND MO.component_id=M.component_id
AND MO.status_id=S.status_id
AND MO.member_id='$memberID'
".$condition1."
ORDER BY MO.lastupdate DESC";