[PHP] ช่วยดูโค้ดให้หน่อยครับ query ไม่ได้ +1

เริ่มโดย peetnawapol, 31 ธันวาคม 2015, 04:02:33

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

peetnawapol

[quote
]<?php $cateSQL = $conn->query("SELECT categories.cname, post.pid, post.pname FROM categories INNER JOIN post WHERE categories.cid=post.cid AND categories.cid=$_REQUEST[cid]");
      $row=$cateSQL->fetch_assoc(); ?>
[/quote]
ขึ้นเออเร่อว่า Fatal error: Call to a member function fetch_assoc() on a non-object in ..... on line 2
ขอบคุณครับ  :wanwan017:

SEnzoP

ปกติควรจะเป็น
$cateSQL->fetch(PDO::FETCH_ASSOC);
หรือ
$cateSQL->fetchAll(PDO::FETCH_ASSOC);
นะครับ

peetnawapol

ทีแรกได้แล้วแต่ตอนนี้เป็นอีกแล้วครับ  :'(

xvlnw.com

INNER JOIN post WHERE เปลี่ยนเป็น INNER JOIN post ON ครับ

ดู Syntax ลิงก์นี้ครับ
http://www.w3schools.com/sql/sql_join_inner.asp
[direct=https://cloudhost.in.th/wordpress-hosting]ツ ⓌⓄⓇⒹⓅⓇⒺⓈⓈ ⒽⓄⓈⓉⒾⓃⒼ [/direct] :wanwan014:  :D
[direct=https://cloudhost.in.th/cloudhosting.html]Cloud Hosting[/direct] [direct=https://cloudhost.in.th/cloudvps.html]Cloud Server[/direct] [direct=https://cloudhost.in.th/vpshosting.html]Cloud VPS Hosting[/direct] [direct=https://cloudhost.in.th/windowsvps.html]Cloud Windows[/direct] Tel: 080-348-0843 LINE: ixvlnw

peetnawapol

อ้างถึงจาก: xvlnw.com ใน 31 ธันวาคม 2015, 14:39:16
INNER JOIN post WHERE เปลี่ยนเป็น INNER JOIN post ON ครับ

ดู Syntax ลิงก์นี้ครับ
http://www.w3schools.com/sql/sql_join_inner.asp
ยังไม่ได้อยู่ดีครับ Fatal error: Call to a member function fetch() on a non-object in.... on line 2

sputtaro

#5
Fatal error: Call to a member function fetch() on a non-objec
มักจะเกิดจาก คำสั่ง $conn->query ไม่ถูกต้อง เช่น
เว้นวรรค พยัญชนะ อักขระ ต่างๆ
รวมทั้ง ค่าในฟิลด์ ไม่มีอยู่จริง หรือ อาจไม่ได้รับค่าใดๆ ที่ถูกอ้างอิง

ลองหาวิธี
echo query มาดูก่อน ว่าก่อนส่งเข้าไปนั้น เขียนไว้ยังไง
รวมทั้งอาจทดสอบ โดยการเริ่มจาก select หรือ where แค่ฟิลด์เดียวก่อน แล้วค่อยๆเพิ่ม เพื่อดูว่าตรงไหนที่เป็นต้นเหตุ
หรือแม้กระทั่ง query ไม่ได้รับค่า $_REQUEST[cid] ก็เป็นได้

หวังว่าจะพอช่วยได้นะครับ

*******************
ขออภัยครับ
ตกหล่น
ดูบันทัดที่ 2 .... on line 2 
ด้วยนะครับ

numau109

SELECT categories.cname, post.pid, post.pname FROM categories INNER JOIN post ON categories.cid=post.cid  WHERE categories.cid= {$_REQUEST[cid]} ;

peetnawapol

อ้างถึง
<?php
      $catSQL=mysqli_query($conn, "SELECT category.cname, post.pid, post.pname FROM category INNER JOIN post ON category.cid=post.cid AND category.cid={$_REQUEST[cid]}");
      $cgrow=$catSQL->fetch_assoc(); ?>
ลองเปลี่ยนรูปแบบดูแล้วก็ยังไม่ได้ครับ  :'(

nscyber

ถ้าเล่น PDO ผมแนะนำเป็นแบบ

$cateSQL->fetch(); //ดึงมาข้อมูลเดียวที่เลือก
หรือ
$cateSQL->fetchALL();//ดึงมาทั้งหมด

ดีกว่าครับ หรือจะเขียนแบบที่คุณ SEnzoP บอกครับ เพราะ PDO จะเรียก assoc ไม่เหมือนเดิมครับ