-1

尝试做一个页面系统,并想知道这段代码是否有效......

$get = mysql_query("SELECT * FROM blog_posts ORDER BY `date` DESC WHERE id > '". $startat ."' AND id < '". $nextPage ."' LIMIT 25")
4

5 回答 5

4

不,它无效。Order By必须靠近结尾,不能在中间。

另外你不应该使用 mysql_query,它是不安全的。请改用 PDO。

SELECT * FROM blog_posts 
WHERE id > '". $startat ."' 
AND id < '". $nextPage ."' 
ORDER BY `date` DESC 
LIMIT 25"
于 2012-09-20T12:31:54.307 回答
0

不,您的子句顺序错误 - 试试这个:

$get = mysql_query("
    SELECT 
        * 
    FROM 
        blog_posts 
    WHERE 
        id > '". $startat ."' 
        AND id < '". $nextPage ."' 
    ORDER BY 
        `date` DESC 
    LIMIT 25");
于 2012-09-20T12:32:04.417 回答
0

您的查询应如下所示

  <br>
    $get = mysql_query("SELECT * FROM blog_posts WHERE id > \
'". $startat ."' AND id < '". $nextPage ."' 
ORDER BY date DESC  LIMIT 25");
于 2012-09-20T12:33:20.063 回答
0

你的WHEREandORDER BY子句是倒退的。尝试:

"SELECT * 
FROM blog_posts 
WHERE id > '". $startat ."' AND id < '". $nextPage ."'
ORDER BY `date` DESC 
LIMIT 25"

我希望$startat并且$nextPage不要来自任何地方的用户输入。你真的应该使用 PDO 或 mysqli - mysql_query 被弃用是有原因的。

于 2012-09-20T12:33:39.920 回答
0

不,该order by部分应该在where clause.

它应该是这样的:

SELECT * 
    FROM 
        blog_posts 
    WHERE 
        id > '". $startat ."' 
        AND id < '". $nextPage ."' 
    ORDER BY 
        `date` DESC 
    LIMIT 25"
于 2012-09-20T12:34:45.353 回答