2011-11-30 45 views
0
$sql="SELECT count(actid) AS tr 
     FROM useractions ua 
     WHERE qid=-1 
      OR qid IN (
       SELECT qid 
       FROM questions q 
       WHERE q.visible=".VISIBLE." 
      ) 
      AND ua.actid =".$actid; 

上面的查询给出了这样的错误:SQL查询错误,不能弄明白

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 '' at line 1

哪些错误的发言?

我做了转储和得到这个:

 
string "SELECT count(actid) AS tr 
      FROM useractions ua 
      WHERE qid=-1 
       OR qid IN (
        SELECT qid 
        FROM questions q 
        WHERE q.visible=1 
       ) 
       AND ua.actid =" (length=270) 

$actid是另一个查询,如下图所示的结果。然后将它传递给上面查询显示的函数。

foreach ($_POST['q'] as $qid) { 
    list($actid) = mysql_fetch_row(mysql_query("SELECT actid FROM useractions WHERE qid='$qid'")); 
    upd_facts_status($actid); 
} 
+0

做一个var_dump($ sql);并张贴它。 –

+0

我该如何解决它? – salmanhijazi

+0

如果我是你,我会这样做:$ array = mysql_fetch_row(...);的var_dump($阵列); $ actid = $ array [0]; pd_facts_status($ ACTID); –

回答

1

验证VISIBLE常具有价值,而且$actid变量的值。

+0

这里是act id如何获取变量。但我认为它没有把它传递给函数。 – salmanhijazi

+0

的foreach($ _POST [ 'Q']为$ QID){ \t \t \t \t列表($ ACTID)=和mysql_fetch_row(的mysql_query( “从useractions选择ACTID其中QID = '$ QID'”)); \t \t \t \t upd_facts_status($ actid); \t \t \t} – salmanhijazi

0

Probalby一个错字 - VISIBLE是一个常量?如果它是一个字符串,它应该在引号中。

你应该让所有的错误消息也:

ini_set("display_errors", true); 
error_reporting(E_ALL);