2017-11-28 3 views
0

私は私のソーシャルメディアネットワークの通知を取得するためのmysqlクエリを作った。しかし、phpmyadminではエラーなしでうまくいきました。私はそれを私のPHPコードに貼り付けて、LIMIT 10 OFFSET 0のために働いた。しかし、LIMIT 10 OFFSET 2またはLIMIT 10 OFFSET 3 ...のために働いていない。私はエラーメッセージの下に直面しました。phpmyadminのクエリは、任意の制限値ex: `10 OFFSET 3`に対して動作します。しかし、PHPサポートのみ `10 OFFSET 0`

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 

いくつかのいずれかが私のクエリをしたい場合は、これはそれが私がこのケースでは、あなたの$page変数が空の文字列であると仮定し

$query = ' 
    SELECT 
     `bell`.`bell_type`, 
     SUBSTRING_INDEX(GROUP_CONCAT(CAST(`cat`.`cat_firstname` AS CHAR) ORDER BY `bell`.`bell_date` DESC), ",", 1) 
      AS firstname, 
     SUBSTRING_INDEX(GROUP_CONCAT(CAST(`bell`.`bell_date` AS CHAR) ORDER BY `bell`.`bell_date` DESC), ",", 1) 
      AS belldate, 
     SUBSTRING_INDEX(GROUP_CONCAT(CAST(`bell`.`bell_seen` AS CHAR) ORDER BY `bell`.`bell_date` DESC), ",", 1) 
      AS bellseen, 
     SUBSTRING_INDEX(GROUP_CONCAT(CAST(`cat`.`cat_id` AS CHAR) ORDER BY `bell`.`bell_date` DESC), ",", 1) 
      AS catid, 
     IF(`meaw`.`meaw_content`!="",`meaw`.`meaw_content`,`meaw`.`meaw_type`) 
      AS bellcontent, 
     COUNT(CONCAT(`bell`.`bell_content`,"-", `bell`.`bell_type`)) 
      AS bellcount, 
     SUBSTRING_INDEX(GROUP_CONCAT(CAST(`bell`.`bell_link` AS CHAR) ORDER BY `bell`.`bell_date` DESC), ",", 1) 
      AS belllink 
     FROM `bell` 
     LEFT OUTER JOIN `cat` ON 
      `bell`.`bell_with` = `cat`.`cat_id` 
     LEFT OUTER JOIN `meaw` ON 
      `bell`.`bell_content` = `meaw`.`meaw_id` 
     WHERE 
      `bell`.`bell_cat`="'.$catid.'" 
     GROUP BY 
      CONCAT(`bell`.`bell_content`,"-", `bell`.`bell_type`) 
     ORDER BY 
      FIELD(`bell`.`bell_seen`,"0","1"), belldate DESC 
     LIMIT 
      10 OFFSET '.$page; 

答えて

1

です。クエリの最後の行はLIMIT 10 OFFSET 'になります。これは明らかにMariaDBの構文違反です。クエリが実行される前にemptyであるかどうかを確認してください。単純に0を割り当ててからクエリを実行してください。

+0

私は 'OFFSET'を置き換えました。$ page; 'to 'OFFSET 10';'。エラーは同じです。しかし、私はそれを 'OFFSET 0 'に置き換えた;'最初の10行が現れる。あなたの答えをありがとう。しかし、それは働かなかった。 –

+0

エラーは、あなたが上に投稿したエラーと同じです( '... 1行目で近くに使用する正しい構文です)? – Azuloo

+0

はいです。 「LIMIT 10,20」と「LIMIT 20,10」を試しました。しかし、何も変わっていません –

関連する問題