 |
search หลายเงื่อนไขอันนี้ ผิดตรงไหนค่ะ รบกวนช่วยด้วยน่ะค่ะ T^T |
|
 |
|
|
 |
 |
|
Code (PHP)
$sql_q= mysql_query($sql) or die (mysql_erorr());
เพิ่มเข้าไปแล้วลองดู error ครับ เพราะผมไม่รู้ว่า ฐานข้อมูลคุณเป็นอย่างไร
|
 |
 |
 |
 |
Date :
2014-03-24 17:14:06 |
By :
Ex-[S]i[L]e[N]t |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
DATABASE ค่ะ
CREATE TABLE `tbl_search` (
`ID` int(3) NOT NULL auto_increment,
`brand` varchar(50) NOT NULL,
`project` varchar(50) NOT NULL,
`location` varchar(50) NOT NULL,
`price` varchar(10) NOT NULL,
`price_low` float NOT NULL,
`price_high` float NOT NULL,
`link` varchar(30) NOT NULL,
`style` varchar(30) NOT NULL,
`style_id` int(11) NOT NULL,
`pic` tinyblob NOT NULL,
`date` int(3) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=75 ;
--
-- dump ตาราง `tbl_search`
--
INSERT INTO `tbl_search` VALUES (1, 'Lanceo', 'รามคำแหง-วงแหวนฯ (มิสทีน)', 'รามคำแหง', '2', 3, 6, 'www.lalinproperty.com', 'บ้านเดี่ยว', 1, '', 6);
INSERT INTO `tbl_search` VALUES (2, 'Lanceo', 'วงแหวนฯ - พระราม 5 (ศรีประวัติ)', 'วงแหวนฯ', '2', 3.79, 4, 'www.lalinproperty.com', 'บ้านเดี่ยว', 1, '', 5);
|
 |
 |
 |
 |
Date :
2014-03-24 17:44:53 |
By :
gungging302 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไอ้พวก if(!empty ผมไม่แน่ใจในความหมายจริง ๆ ของคำสั่งนี้....
ลองเปลี่ยนเป็นค่าตรง ๆ เช่น
if($style_id != ""){
$sql = "SELECT * FROM tbl_search WHERE style_id LIKE '%".$style_id."%' order by id asc";
}else if($price != "" ){
แบบนี้ได้ไหม
หรือ อาจใช้ switch case
แต่เงื่อนไขค่ามาหลากหลายแบบนี้ ผมงงว่า ฟอร์มจะเป็นแบบไหน
ทำไมเงือนไขการคนหามันเยอะแยะจัง 
|
 |
 |
 |
 |
Date :
2014-03-24 18:31:15 |
By :
apisitp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้ลองโค้ดแค่ชุดเดียวหรือยัง ถ้ายังไม่ได้ก็ให้แก้ชุดนี้ให้สำเร็จ แล้วค่อยๆเพิ่มทีละชุด
if(!empty($style_id)){
$sql = "SELECT * FROM tbl_search WHERE style_id LIKE '%".$style_id."%' order by id asc";
}
แล้วตรง echo"$sql"; ผมว่ามันต้องเขียนเป็น echo $sql; หรือเปล่า ผมก็งงๆกับเครื่องหมายอยู่
เครื่องหมาย " กับ ' เป็นอะไรที่ผมงงมาก คือไม่รู้ความหมายการใช้งาน แต่ก็มั่วจนสำเร็จ 555
|
 |
 |
 |
 |
Date :
2014-03-24 19:07:15 |
By :
phun |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ส่วนนี้สามารถทำให้มันค้นหาเงือนไขใดเงื่อนไข นึงได้ค่ะ ตรงนี้ใช้การได้แร้ว
Code (PHP)
if(!empty($style_id)){
$sql = "SELECT * FROM tbl_search WHERE style_id LIKE '%".$style_id."%' order by id asc";
}else if(!empty($price)){
$sql = "SELECT * FROM tbl_search WHERE price LIKE '%".$price."%' order by id asc";
}else if(!empty($location)){
$sql = "SELECT * FROM tbl_search WHERE location LIKE '%".$location."%' order by id asc";
แต่ตรงนี้ เมื่อเอา 2 เงื่อนไขมา and กันมันใช้ไม่ได้ค่ะ
}else if(!empty($style_id) && !empty($price)){
$sql = "SELECT * FROM tbl_search WHERE style_id LIKE '%".$style_id."%' AND price LIKE '%".$price."%' order by id asc";
echo"$sql";
}else if(!empty($style_id) && !empty($location)){
$sql = "SELECT * FROM tbl_search WHERE style_id LIKE '%".$style_id."%' AND location LIKE '%".$location."%' order by id asc";
}else if(!empty($price) && !empty($location)){
$sql = "SELECT * FROM tbl_search WHERE price LIKE '%".$price."%' AND location LIKE '%".$location."%' order by id asc";
}else if(!empty($style_id) && !empty($price) && !empty($location)){
$sql = "SELECT * FROM tbl_search WHERE style_id LIKE '%".$style_id."%' AND price LIKE '%".$price."%' AND location LIKE '%".$location."%'";
}else{
$sql = "SELECT * FROM tbl_search order by id asc";
}
$sql_q= mysql_query($sql);
?>
|
 |
 |
 |
 |
Date :
2014-03-25 09:40:32 |
By :
gungging302 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|