Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ปรึกษา SQL Query Statement หน่อยครับผมทำค้นหาข้อมูลมันไม่ได้ตามที่ต้องการครับ



 

ปรึกษา SQL Query Statement หน่อยครับผมทำค้นหาข้อมูลมันไม่ได้ตามที่ต้องการครับ

 



Topic : 114538



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์




seach

ผมทำseach ข้อมูลในฐานข้อมูลมันไม่ได้ผลตามที่ผมต้องการ
seach

Code
   if(isset($_POST['province1']) OR isset($_POST['companyType']) OR isset($_POST['companyname'])){
       $province=test_input($_POST['province1']);
       $companyType=test_input($_POST['companyType']);
       $companyName=test_input($_POST['companyname']);
        //--QueryStr-->
       $StrCompany="SELECT company.CompanyID,company.CompanyName,company.Address FROM company
       WHERE company.CompanyName LIKE '%$companyName%'  OR company.company_typeId='$companyType' OR company.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{

ปัญหาของผมคือพอผมกดปุ่มค้นหา ในขณะที่ text box กับ selectbox มันยังว่างอยู่ มันกับดึกข้อมูลบริษัททั้งหมดในฐานข้อมูลมา
แสดงครับดังรูปครับ

ค้นหา



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-02-19 18:53:22 By : tantai View : 848 Reply : 17
 

 

No. 1



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ลอง echo $StrCompany มาดูหน่อยครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-19 19:14:05 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


Code
mysqli_result Object ( [current_field] => 0 [field_count] => 3 [lengths] => [num_rows] => 3 [type] => 0 )

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-19 19:24:44 By : tantai
 

 

No. 3



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : tantai เมื่อวันที่ 2015-02-19 19:24:44
รายละเอียดของการตอบ ::
มันได้ค่านี้มาครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-19 19:25:09 By : tantai
 


 

No. 4



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


echo $StrCompany; exit;

ถ้าทำไม่ได้ ก็รอให้คนอื่น มาตอบแล้วกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-19 19:29:00 By : Chaidhanan
 


 

No. 5



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


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
 


 

No. 6

Guest


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 : ผ่านมา
 


 

No. 7



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ประมาณดักค่า ถ้าเป็นค่าว่าง ก็ไม่ต้องค้นหา
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-20 09:07:38 By : apisitp
 


 

No. 8



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


งง มากเลยครับ

Code
SELECT CompanyID,CompanyName,Address FROM company WHERE CompanyName LIKE '%%' OR company_typeId='2' OR PROVINCE_ID=''


statement นี้ความจริงมันต้องไม่มีค่าอะไรแต่มันกับดึงข้อมูลออกมาหมดเลย ผมผิดตรงไหน งง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-20 13:29:20 By : tantai
 


 

No. 9



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


still waiting
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-20 14:04:29 By : tantai
 


 

No. 10



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


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
 


 

No. 11

Guest


จาก #8
ผมว่าน่ะ......คงต้องเริ่มต้นจากทำความเข้าใจเรื่อง and กับ or ใหม่แล้วมั้งครับ
ถ้ายังไม่เข้าใจทำยังงัยก็ผิด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-20 18:11:29 By : ผ่านมา
 


 

No. 12



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-02-20 17:27:00
รายละเอียดของการตอบ ::
พี่ Chaidhanan พี่คือพ่อพระโดยแท้ขอบคุณมากเลยครับใช้แบบนี้นี่เอง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-20 18:52:48 By : tantai
 


 

No. 13



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : tantai เมื่อวันที่ 2015-02-20 13:29:20
รายละเอียดของการตอบ ::
CompanyName LIKE '%%' ที่มันออกมาหมด เพราะคำสั่งนี้ครับ คำสั่งนี้ เป็นจริง
เมื่อเอาไป or กับอะไร ก็เป็นจริง เสมอ
like %% เท่ากับเอาทั้งหมด แม้ค่าว่างก็ไม่เว้น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-21 07:58:06 By : Chaidhanan
 


 

No. 14



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับที่อธิบายครับ ตอนนี้มันทำงานได้แล้วครับ
คือผมสงสัยตรง "WHERE 0 ". ตรงนี้มันคืออะไรหรอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-21 12:37:12 By : tantai
 


 

No. 15



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


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
 


 

No. 16



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-02-21 15:21:56
รายละเอียดของการตอบ ::
สุดยอดความรู้ครับขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-21 21:14:50 By : tantai
 


 

No. 17



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


where 0 นี่ระวังเรื่อง security หน่อยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-21 21:43:07 By : PlaKriM
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปรึกษา SQL Query Statement หน่อยครับผมทำค้นหาข้อมูลมันไม่ได้ตามที่ต้องการครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่