 |
ต้องการ seach ข้อมูลให้ออกมาหลายๆอันทำไงคับ รบกวนด้วยคับ |
|
 |
|
|
 |
 |
|
ตรง
ID LIKE '%".$_GET["txtKeyword"]."%'
มันจะหาเฉพาะในฟิล ID ที่ค่าภายใน มี เลข 1
ซึ่งผลลัพที่ออกมาก็ถูกต้องแล้ว
แต่หากลองเปลี่ยน เป็น ID NAME '%".$_GET["txtKeyword"]."%'
แล้วพิมคำว่า ของ มันจะแสดงออกมาหมดเลย
|
 |
 |
 |
 |
Date :
2017-07-10 16:26:49 |
By :
zcoolmax |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$result = แปลง + เป็น คอมม่า;
แล้วใข้คำสั่ where id in( $result )
|
 |
 |
 |
 |
Date :
2017-07-10 20:10:19 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แก้ไขเป็นแบบนี้ครับ
$strSQL = "SELECT * FROM table2 WHERE ID in '".$_GET['txtKeyword']."'";
ตอนพิมคำค้นหาก็พิมไปว่า
1,2,5,6
ใช้ , เป็นตัวแยกคำ
|
 |
 |
 |
 |
Date :
2017-07-11 16:30:26 |
By :
zcoolmax |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอา single quote ออก เอาแค่นี้
Code (PHP)
$strSQL="select * from table2 where ID in(".$_GET['txtKewword'].")";
// หรือ
$strSQL="select * from table2 where ID in($_GET[txtKewword])";
ปล. อธิบายเพิ่มเติม เมื่อมี single quote จะเป็น in ('1,2,3') [[ 1 คอมม่า 2 คอมม่า 3 ]]
'1,2,3' พอแปลงเป็นตัวเลขจะมีค่าแค่ 1 เพราะ id มี type เป็นตัวเลข
|
ประวัติการแก้ไข 2017-07-12 13:35:40
 |
 |
 |
 |
Date :
2017-07-12 12:41:22 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$exp = explode(",",$_GET["txtKeyword"]);
$strSQL="select * from table2 where ID = '".$exp[0]."'";
if(count($exp)>1){
for($i=1;$i<count($exp);$i++){
$strSQL .= " or ID = '".$exp[$i]."'";
}
}
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
เอาแบบนี้ละกันครับ
|
 |
 |
 |
 |
Date :
2017-07-12 15:55:06 |
By :
zcoolmax |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ก็ตัวอย่างเป็นภาพมาเลยก๊อปปี้ไม่ได้ ตัวแปรที่พิมพ์ใหม่ทำเป็นตัวอย่างมันก็ผิดไปหน่อย
txtKewword แก้เป็น txtKeyword
|
 |
 |
 |
 |
Date :
2017-07-12 20:13:18 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้แล้วคับ
ขอบคุณครับ ทั้งสองท่าน
|
 |
 |
 |
 |
Date :
2017-07-14 12:04:55 |
By :
woraman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|