ช่วยดูโค๊ตให้หน่อยคับ HomeForumช่วยดูโค๊ตให้หน่อยคับ arasked arasked คือผมต้องการค้นหาคับ ไม่รู้ว่าใช้ sql ถูกรึป่าว $sql="select * from data where idsubject='".$_SESSION['id_subject']."' and idtype='$id_type' or iddata LIKE '%".$_GET["txtKeyword"]."%' or note LIKE '%".$_GET["txtKeyword"]."%' "; เวลามันค้นเสร็จข้อมูลมันมาหมดเลย มันไม่ยอมแยก idsubject กับ idtype กรกฎ วิริยะ ใส่วงเล็บเพื่อจัดกลุ่มด้วยก็ดีครับ เนื่องจากมีทั้ง AND และ OR อยู่ด้วยกัน ไม่งั้นเดี๋ยวสับสน เช่น (field1=x AND field2=y) OR field3 LIKE '%z%' SQL จะทำคำสั่งในวงเล็บก่อนเสมอครับ กรกฎ วิริยะ ถ้าต้องการผลลัพท์ตาม idsubject และ idtype ควรเขัยนคำสั่งเป็น idsubject=1 และ idtype=1 และ (idata LIKE '%x%' หรือ note LIKE '%x%') arasked arasked มันยังไม่ได้อ่ะคับ ลองใส่วงเล็บตามที่บอกแล้ว กรกฎ วิริยะ ไม่แน่ใจว่าประยุกต์ถูกหรือเปล่า ลองสังเกตข้อความภาษาไทยที่ผมใช้ดู และแปลเป็นคำสั่ง SQL เนื่องจากข้อมูลที่ให้มามีเท่านี้ผมก็ตอบตามที่ผมเข้าใจ แล้วอย่าเอาโค้ดยาวๆ ส่งมาให้ล่ะ เพราะก็อาจไม่ได้รับคำตอบเข่นกัน (ดูหลายๆคำถามบนเว็บละกัน ไม่ได้รับคำตอบ) AND ก็คือ และ หมายถึง นิพจน์ทั้ง หน้าและ หลัง AND ต้องเป็นจริงทั้งหมด ผมไม่รู้ว่าในความเป็นจริง idsubject และ idtype เท่ากันหรือไม่ (จากตัวอย่าง) แต่ที่ผมเขียนด้านบนคือหมายความว่า มันเท่ากัน ส่วน OR หมายถึง อย่างใดอย่างหนึ่ง ถ้านิพจน์ ด้าน ซ้าย หรือ ขวา เป็นจริง อย่างใดอย่างหนึ่ง ก็จะคืนคำตอบมาให้แล้ว หลักการเขียนคำสั่ง SQL ในกรณ๊ที่เราไม่เข้าใจ ควรเริ่มจากการทำความเข้าใจก่อน เราอาจทดสอบที่ละนิพจน์เพื่อดูว่าข้อมูลที่เลือกถูกต้องหรือไม่ก็ได้ เมื่อเราพอที่จะคาดเดาผลลัพท์ของมันได้ เราก็จะเขียนคำสั่งยาวๆ ได้เอง ในกรณีคำสั่งที่เธอใช้ ในคำถาม ถ้าจะพิจรณาให้ดี idsubject และ idtype แทบไม่มีความหมาย เพราะผลลัพท์ส่วนใหญ่ จะได้มาจาก iddata และ idnote (ซึ่งใช้ OR) ซะมากกว่า ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
(field1=x AND field2=y) OR field3 LIKE '%z%'
SQL จะทำคำสั่งในวงเล็บก่อนเสมอครับ
idsubject=1 และ idtype=1 และ (idata LIKE '%x%' หรือ note LIKE '%x%')
ลองใส่วงเล็บตามที่บอกแล้ว
แล้วอย่าเอาโค้ดยาวๆ ส่งมาให้ล่ะ เพราะก็อาจไม่ได้รับคำตอบเข่นกัน (ดูหลายๆคำถามบนเว็บละกัน ไม่ได้รับคำตอบ)
AND ก็คือ และ หมายถึง นิพจน์ทั้ง หน้าและ หลัง AND ต้องเป็นจริงทั้งหมด ผมไม่รู้ว่าในความเป็นจริง idsubject และ idtype เท่ากันหรือไม่ (จากตัวอย่าง) แต่ที่ผมเขียนด้านบนคือหมายความว่า มันเท่ากัน
ส่วน OR หมายถึง อย่างใดอย่างหนึ่ง ถ้านิพจน์ ด้าน ซ้าย หรือ ขวา เป็นจริง อย่างใดอย่างหนึ่ง ก็จะคืนคำตอบมาให้แล้ว
หลักการเขียนคำสั่ง SQL ในกรณ๊ที่เราไม่เข้าใจ ควรเริ่มจากการทำความเข้าใจก่อน เราอาจทดสอบที่ละนิพจน์เพื่อดูว่าข้อมูลที่เลือกถูกต้องหรือไม่ก็ได้ เมื่อเราพอที่จะคาดเดาผลลัพท์ของมันได้ เราก็จะเขียนคำสั่งยาวๆ ได้เอง
ในกรณีคำสั่งที่เธอใช้ ในคำถาม ถ้าจะพิจรณาให้ดี idsubject และ idtype แทบไม่มีความหมาย เพราะผลลัพท์ส่วนใหญ่ จะได้มาจาก iddata และ idnote (ซึ่งใช้ OR) ซะมากกว่า