 |
ปรึกษา SQL Query Statement หน่อยครับผมทำค้นหาข้อมูลมันไม่ได้ตามที่ต้องการครับ |
|
 |
|
|
 |
 |
|
ลอง echo $StrCompany มาดูหน่อยครับ
|
 |
 |
 |
 |
Date :
2015-02-19 19:14:05 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
echo $StrCompany; exit;
ถ้าทำไม่ได้ ก็รอให้คนอื่น มาตอบแล้วกันครับ
|
 |
 |
 |
 |
Date :
2015-02-19 19:29:00 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
SELECT company.CompanyID,company.CompanyName,company.Address FROM company WHERE company.CompanyName LIKE '%%' OR company.company_typeId='' OR company.PROVINCE_ID=''
ถ้ายังไม่ได้เลือกอะไรได้ค่าว่างครับ
|
 |
 |
 |
 |
Date :
2015-02-19 20:20:42 |
By :
tantai |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
if($_POST['province1'] OR $_POST['companyType'] OR $_POST['companyname'])
//ผมชอบใช้แบบนี้
if(trim($_POST['province1'])!="" OR trim($_POST['companyType'])!="" OR trim($_POST['companyname']!="")
|
 |
 |
 |
 |
Date :
2015-02-20 02:33:54 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ประมาณดักค่า ถ้าเป็นค่าว่าง ก็ไม่ต้องค้นหา
|
 |
 |
 |
 |
Date :
2015-02-20 09:07:38 |
By :
apisitp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
still waiting
|
 |
 |
 |
 |
Date :
2015-02-20 14:04:29 |
By :
tantai |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?php
$province=isset($_POST['province1'])? test_input($_POST['province1']) : '';
$companyType=isset($_POST['companyType'])? test_input($_POST['companyType']) : '';
$companyName=isset($_POST['companyname'])? test_input($_POST['companyname']) : '';
if( $province || $companyType || $companyName ){
//--QueryStr-->
$StrCompany="SELECT CompanyID, CompanyName, Address FROM company ".
"WHERE 0 ".
($companyName? " or CompanyName LIKE '%$companyName%' " : '') .
($companyType? " or company_TypeId='$companyType' " : '') .
($province? " or PROVINCE_ID='$province' " : '');
//--EndQuerystr--//
$CompanyQuery=mysqli_query($data,$StrCompany) or die (mysqli_error($data) . "<br>$StrCompany");
//Count row of table
$count=mysqli_num_rows( $CompanyQuery);
if($count==0){
echo 'No data you want';
}else{
// do your want/
}
}else{
echo 'No post anything';
}
?>
ปล. ดูชื่อตัวแปรให้ถูกต้องนะครับ ตัวเล็ก ไม่เท่า กับตัวใหญ่
|
ประวัติการแก้ไข 2015-02-20 17:28:33
 |
 |
 |
 |
Date :
2015-02-20 17:27:00 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จาก #8
ผมว่าน่ะ......คงต้องเริ่มต้นจากทำความเข้าใจเรื่อง and กับ or ใหม่แล้วมั้งครับ
ถ้ายังไม่เข้าใจทำยังงัยก็ผิด
|
 |
 |
 |
 |
Date :
2015-02-20 18:11:29 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับที่อธิบายครับ ตอนนี้มันทำงานได้แล้วครับ
คือผมสงสัยตรง "WHERE 0 ". ตรงนี้มันคืออะไรหรอครับ
|
 |
 |
 |
 |
Date :
2015-02-21 12:37:12 |
By :
tantai |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
where 0 เป็นการกำหนดค่า เริ่มต้น เพื่อที่จะได้ไม่ต้องตรวจสอบ element อื่นๆ ว่ามีหรือเปล่า
เป็น เทคนิคการเขียนโปรแกรมให้สั้นลง เท่านั้นครับ
เช่น ถ้าเราไม่ใส่ 0 เรา'ต้องเขียน
' where ' . ( $dddd? " or var1 = $dddd " : '') . เราจะใส่ or สีแดงไม่ได้ มันผิด ไวยกรณ์ใช่ไหมครับ
ที่นี้ถ้าเรา เอา or สีแดงออก แล้วการเปรียบเทียบตัวต่อไปเรา จะใส่อย่างไร ครับ ถ้า $dddd ไม่มีค่า
เลยกำหนดค่าเริ่มต้น เป็น where 0 เพื่อที่จะได้ไป or กับการเปรียบเทียบตัวอื่นได้
ช่วยให้เขียน ได้ง่ายขึ้น
ในทำนองเดียวกัน ถ้า เราต้องการเปรียบเทียบกับการ and ทุกการเปรียบเทียบจากตัวแปรแที่ส่งมา
ผมก็จะใช้ ' where 1 '. ($dddd? " and var1 = $dddd " : '' ); ถ้ามีตัวแปรไหนผิด ไป มันก็จะไม่มีข้อมูล
|
 |
 |
 |
 |
Date :
2015-02-21 15:21:56 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
where 0 นี่ระวังเรื่อง security หน่อยนะครับ 
|
 |
 |
 |
 |
Date :
2015-02-21 21:43:07 |
By :
PlaKriM |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|