2016-10-03 32 views
1

我有這個疑問和錯誤的手冊:錯誤;檢查對應於您MariaDB的服務器版本正確的語法

錯誤消息:

數據庫出錯

錯誤編號:1064

您的SQL語法有錯誤;檢查 對應於您MariaDB的服務器版本的正確的語法使用 鄰近於3線 選擇id_lw,judul_lw,左(deskripsi_lw,30)deskripsi_lw '作爲provinsi ON provinsi.IDProvinsi = lokasi_wisata.IDP JOIN provinsi' 手動,latitude_lw,longitude_lw, nama_p,nama_k,status_lw,從lokasi_wisata ORDER BY gambar_lw id_lw ASC JOIN provinsi作爲provinsi ON provinsi.IDProvinsi = lokasi_wisata.IDProvinsi JOIN kabupaten作爲kabupaten ON kabupaten.IDKabupaten = lokasi_wisata.IDKabupaten其中judul_lw像 '%%'limit 0,10 文件名:C:/xampp/htdocs/mtma/application/models/pagination_model.php 行號:21

查詢:

$sql = "select id_lw,judul_lw,left(deskripsi_lw,30)deskripsi_lw,latitude_lw,longitude_lw, 
       nama_p,nama_k,status_lw,gambar_lw 
       from lokasi_wisata ORDER BY id_lw ASC JOIN 
       provinsi as provinsi ON provinsi.IDProvinsi = lokasi_wisata.IDProvinsi JOIN 
       kabupaten as kabupaten ON kabupaten.IDKabupaten = lokasi_wisata.IDKabupaten where judul_lw like '%$st%' limit " . $start . ", " . $limit ; 
+0

您的訂單是錯誤的:https://mariadb.com/kb/en/mariadb/select/ – aynber

+1

把ORDER BY底,只是限制之前。 – jarlh

回答

1

order by部分不正確定位。它屬於最後,而不是加入之前:

$sql = "select id_lw,judul_lw,left(deskripsi_lw,30)deskripsi_lw,latitude_lw,longitude_lw, 
       nama_p,nama_k,status_lw,gambar_lw 
       from lokasi_wisata JOIN 
       provinsi as provinsi ON provinsi.IDProvinsi = lokasi_wisata.IDProvinsi JOIN 
       kabupaten as kabupaten ON kabupaten.IDKabupaten = lokasi_wisata.IDKabupaten where judul_lw like '%$st%' ORDER BY id_lw ASC limit " . $start . ", " . $limit ; 
+0

它的工作..你怎麼知道..我如何解決它沒有你們都? 我應該在哪裏學習SQL位置正確? –

+0

只需google'sql tutorial',你會得到不少好的。這是一個很好的起點 –

0

SQL語句必須按照某個順序。

  1. SELECT
  2. FROM表
  3. JOIN表
  4. WHERE
  5. GROUP BY
  6. HAVING
  7. ORDER BY
  8. LIMIT

所以,你的查詢需要看起來像這樣:

$sql = "select id_lw,judul_lw,left(deskripsi_lw,30)deskripsi_lw,latitude_lw,longitude_lw, 
      nama_p,nama_k,status_lw,gambar_lw 
      from lokasi_wisata 
      JOIN provinsi as provinsi ON provinsi.IDProvinsi = lokasi_wisata.IDProvinsi 
      JOIN kabupaten as kabupaten ON kabupaten.IDKabupaten = lokasi_wisata.IDKabupaten 
      where judul_lw like '%$st%' 
      ORDER BY id_lw ASC 
      limit " . $start . ", " . $limit ; 
+0

thx ..它非常有用:) –

0

可能是你缺少一個共同的或別名不claer positione 你在錯誤的地方

"select id_lw,judul_lw, left(deskripsi_lw,30)deskripsi_lw,latitude_lw,longitude_lw, 
               ^^ here (or you are trying to buil an alias ?) 
      nama_p,nama_k,status_lw,gambar_lw 
      from lokasi_wisata 
      ORDER BY id_lw ASC 
      ^^ the order by should be at the end of the query non between from and join 
      JOIN provinsi as provinsi ON provinsi.IDProvinsi = lokasi_wisata.IDProvinsi 
      JOIN kabupaten as kabupaten ON kabupaten.IDKabupaten = lokasi_wisata.IDKabupaten 
      where judul_lw like '%$st%' limit " . $start . ", " . $limit ; 



      "select id_lw,judul_lw,left(deskripsi_lw,30)deskripsi_lw,latitude_lw,longitude_lw, 
      nama_p,nama_k,status_lw,gambar_lw 
      from lokasi_wisata ORDER BY id_lw ASC JOIN 
      provinsi as provinsi ON provinsi.IDProvinsi = lokasi_wisata.IDProvinsi JOIN 
      kabupaten as kabupaten ON kabupaten.IDKabupaten = lokasi_wisata.IDKabupaten where judul_lw like '%$st%' limit " . $start . ", " . $limit ; 

這個順序條款的任何方式方式

  "select id_lw,judul_lw, left(deskripsi_lw,30) as deskripsi_lw,latitude_lw,longitude_lw, 

      nama_p,nama_k,status_lw,gambar_lw 
      from lokasi_wisata 
      JOIN provinsi as provinsi ON provinsi.IDProvinsi = lokasi_wisata.IDProvinsi 
      JOIN kabupaten as kabupaten ON kabupaten.IDKabupaten = lokasi_wisata.IDKabupaten 
      where judul_lw like '%$st%' 
      ORDER BY id_lw ASC 
      limit " . $start . ", " . $limit ; 
相關問題