ช่วยดูระบบค้นหาแบบหลายเงื่อนขัย ให้ทีครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ช่วยดูระบบค้นหาแบบหลายเงื่อนขัย ให้ทีครับ
1 | $sql = "select * from tb_product where (name_prd like '%" . $_POST ['name_prd ']."%' or model_prd like '".$_POST[' model_prd ']."' and manner_prd= '".$_POST[' manner ']."' and year_prd= '".$_POST[' YY ']."' and price_prd BETWEEN '".$_POST[' price_prd ']."' AND '".$_POST[' price_prd2 ']."' ) "; |
ยังงงๆ กับมัน อยู่ เพราะ search ข้อมูลมันก็ออกมาหมดเลย

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ให้ดูการกำหนดวงเล็บ เรื่องการจัดตำแหน่ง ลองกำหนดตามด้านล่างดู
1 | $sql = "select * from tb_product where (name_prd like '%" . $_POST ['name_prd ']."%' ) AND (model_prd like '".$_POST[' model_prd ']."' ) AND (manner_prd= '".$_POST[' manner ']."' ) AND (year_prd= '".$_POST[' YY ']."' ) AND (price_prd BETWEEN '".$_POST[' price_prd ']."' AND '".$_POST[' price_prd2 ']."' ) "; |
หรือใช้วิธีการกำหนดให้อ่าน หรือแก้ไขง่ายด้วย การต่อตัวแปร $sql
1 2 3 4 5 | $sql = "select * from tb_product where (name_prd like '%" . $_POST ['name_prd ']."%' ) "; $sql .= " AND (model_prd like '" . $_POST ['model_prd ']."' ) "; $sql .= " AND (manner_prd='" . $_POST ['manner ']."' ) "; $sql .= " AND (year_prd='" . $_POST ['YY ']."' ) "; $sql .= " AND (price_prd BETWEEN '" . $_POST ['price_prd ']."' AND '".$_POST[' price_prd2 ']."' ) "; |

ใส่วงเล็บกับไม่ใส่ มีผลต่างกันยังงัย ครับ ผมลองไม่ใส่ ผลออกมามันก็เหมือนกัน

ผลของการใส่วงเล็บ หรือการจัดกลุ่มของวงเล็บ มีผลต่อการตรวจสอบเงื่อนไขของโปรแกรม
ตามหลักตรรกะ True หรือ False ตัวอย่าง
T=True ,F=False
ตัวอย่างที่ 1..... T OR F AND F AND F AND F =T
ตัวอย่างที่ 2.....(T OR F) AND F AND F AND F =F
ตัวอย่างที่ 3.....(T OR F) AND (F AND F AND F)=F
ตัวอย่างที่ 4.....T OR (F AND F AND F AND F)=T
ตัวอย่างที่ 1 กับตัวอย่างที่ 4
น่าจะตอบคำถามที่ว่า
" ใส่วงเล็บกับไม่ใส่ มีผลต่างกันยังงัย ครับ ผมลองไม่ใส่ ผลออกมามันก็เหมือนกัน "
หรือแม้กรณีอื่นๆ ทั่ง 4 กรณี มีทั้งเหมือนและแตกต่างกัน
