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 > ช่วยดูทีครับอยากได้ Code ที่ค้นหาข้อมูลโดยต้องกรอกข้อมูลอย่างน้อย1อย่างขึ้นไป



 

ช่วยดูทีครับอยากได้ Code ที่ค้นหาข้อมูลโดยต้องกรอกข้อมูลอย่างน้อย1อย่างขึ้นไป

 



Topic : 076047



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



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




รูปตัวอย่าง

ค้นหา

โค้ดที่ผมเขียน มันสามารถค้นได้แค่1อย่าง มากกว่า1อย่างมันerror ช่วยด๊ที่ครับ

Code (PHP)
<?PHP
	$id=mysql_real_escape_string($_POST['id']);
	$stdname=mysql_real_escape_string($_POST['stdname']);
	$surname=mysql_real_escape_string($_POST['surname']);
	$class=mysql_real_escape_string($_POST['select']);
	
		if(empty($id)&& empty($stdname)&&empty($surname)&&empty($class))
	{
		echo "<script>alert('กรุณากรอกข้อมูลอย่างน้อย1อย่าง');history.back();</script>";
		exit();
	}
	$tid = $_SESSION['login'];			
	$and =false;
	$stdsql="SELECT SID,Sname,Ssname,Level_Id,Room FROM student";
	if(trim($id)!="")
	{
		$stdsql.=" WHERE SID like '%".$id."%' && Teacher like '%$tid%' order by Level_Id,Room";
		$and=true;
	}
	if(trim($stdname)!="")
	{
		if($and)$stdsql.=" AND ";
		$stdsql.=" WHERE Sname like '%".$stdname."%' && Teacher like '%$tid%' order by Level_Id,Room";
		$and=true;
	}
	if(trim($surname)!="")
	{
		if($and)$stdsql.=" AND ";
		$stdsql.=" WHERE Ssname like '%".$surname."%' && Teacher like '%$tid%' order by Level_Id,Room";
		$and=true;
	}
	if(trim($class)!="")
	{
		if($and)$stdsql.=" AND ";
		$stdsql.=" WHERE Level_Id like '%".$class."%' && Teacher like '%$tid%' order by Level_Id,Room";
		$and=true;
	}
	
	$stdresult=mysql_query($stdsql) OR die("<script>alert('Error!');history.back();</script>");
	$row	=	mysql_num_rows($stdresult);



หรือถ้าใครมีวิธีค้นหาข้อมูลโดยต้องกรอกข้อมูลอย่างน้อย1อย่างขึ้นไปก็ขอหน่อยละกันนะครับ :)



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-03-24 13:30:00 By : lnwsit View : 1077 Reply : 10
 

 

No. 1



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



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


Code (PHP)
SELECT * FROM student WHERE SID LIKE '%$.....%' OR Sname LIKE '%$...%' OR ....







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 13:35:11 By : 50121680
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : 50121680 เมื่อวันที่ 2012-03-24 13:35:11
รายละเอียดของการตอบ ::
ลองเเล้วไม่ได้ครับ ค้นหาไม่ได้แม้เเต่อย่างเดียว errorหมดเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 13:54:35 By : lnwsit
 

 

No. 3



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



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


ผมว่าอย่างเดียวไม่ดีนะครับ ถ้าเกิดชื่อซ้ำกันละ ???

เพราะงั้นก้ใช้อย่างน้อยก็รหัสอ่ะ ดีกว่า

แล้วก้ตั้งเงื่อนไขเอาสิครับ

if($id){
$SQL="select * form table where Id='$id'"
}else if($name){
$SQL="select * from table where name='$name'"
}

แล้วจบ if ค่อยส่งไป query
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 14:01:30 By : tongspy
 


 

No. 4



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



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

ไมได้เทสนะครับ มันเป็นเรื่องของ where ซ้ำๆ กัน ให้เปลี่ยนเป็น วงเล็บ และใช้ OR ในการหาอย่างใดอย่างหนึ่งแทน

Code (PHP)
<?PHP
	$id=mysql_real_escape_string($_POST['id']);
	$stdname=mysql_real_escape_string($_POST['stdname']);
	$surname=mysql_real_escape_string($_POST['surname']);
	$class=mysql_real_escape_string($_POST['select']);
	
		if(empty($id)&& empty($stdname)&&empty($surname)&&empty($class))
	{
		echo "<script>alert('กรุณากรอกข้อมูลอย่างน้อย1อย่าง');history.back();</script>";
		exit();
	}
	$tid = $_SESSION['login'];			
	$and =false;
	$stdsql="SELECT SID,Sname,Ssname,Level_Id,Room FROM student WHERE ";
	if(trim($id)!="")
	{
		$stdsql.=" ( SID like '%".$id."%' && Teacher like '%$tid%' order by Level_Id,Room )";
		$and=true;
	}
	if(trim($stdname)!="")
	{
		if($and)$stdsql.=" OR ";
		$stdsql.="  ( Sname like '%".$stdname."%' && Teacher like '%$tid%' order by Level_Id,Room )";
		$and=true;
	}
	if(trim($surname)!="")
	{
		if($and)$stdsql.=" OR ";
		$stdsql.=" (  Ssname like '%".$surname."%' && Teacher like '%$tid%' order by Level_Id,Room ) ";
		$and=true;
	}
	if(trim($class)!="")
	{
		if($and)$stdsql.=" OR ";
		$stdsql.=" (  Level_Id like '%".$class."%' && Teacher like '%$tid%' order by Level_Id,Room ) ";
		$and=true;
	}
	
	$stdresult=mysql_query($stdsql) OR die("<script>alert('Error!');history.back();</script>");
	$row	=	mysql_num_rows($stdresult);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 14:03:35 By : 13eachz
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : 13eachz เมื่อวันที่ 2012-03-24 14:03:35
รายละเอียดของการตอบ ::
ลองแล้วไม่ได้ครับบ พอมีตัวอย่าง แบบอื่นไหมรับ เดียวผมลิงประยุกต์ดู

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 14:35:39 By : lnwsit
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : tongspy เมื่อวันที่ 2012-03-24 14:01:30
รายละเอียดของการตอบ ::
ลองตามวิธีของคุณ tongspy แล้ว

ทำนองนี่รึป่าวครับ
Code (PHP)
	$tid = $_SESSION['login'];			
	if($id){
	$stdsql="select SID,Sname,Ssname,Level_Id,Room FROM student where SID='%$id%' and Teacher = '$tid'";
	}
	else if($stdname){
	$stdsql="select SID,Sname,Ssname,Level_Id,Room FROM student where Sname='%$stdname%' and Teacher = '$tid'";
	} 
	else if($surname){
	$stdsql="select SID,Sname,Ssname,Level_Id,Room FROM student where Ssname='%$surname%' and Teacher = '$tid'";
	} 
	else if($class){
	$stdsql="select SID,Sname,Ssname,Level_Id,Room FROM student where Level_Id='$class' and Teacher = '$tid'";
	} 
	
	$stdresult=mysql_query($stdsql) OR die("<script>alert('Error!');history.back();</script>");
	$row	=	mysql_num_rows($stdresult);


ค้นหาได้เพียงอย่างเดียวครับ มากกว่า1 เงื่อนไขไม่ได้



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 14:38:47 By : lnwsit
 


 

No. 7



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



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


อืม..ยังไง ครับ ค่าเดียว ก็เรา จะเอา ค่าอะไร select ออกมา ตามที่ where ไงครับ

ไม่เข้าใจคำถามนิดหน่อย


ประวัติการแก้ไข
2012-03-24 14:44:05
2012-03-24 14:50:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 14:43:32 By : tongspy
 


 

No. 8



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



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

เอาง่ายๆนะครับ

แบบที่คุณเขียนน่ะถูกแล้ว แต่ว่า เงื่อนไขในการเรียกใช้มันผิด

ผิดตรงไหน ผิดที่ where มันใช้ได้ครั้งเดียว แต่ เรียก where ซ้ำๆ เท่านั้นเองครับ แล้วก็ order ถ้ามี 2 ฟิลด์แปลว่า order 2 รอบมันก้ไม่ได้เช่นกัน

ผมไม่ทันสังเกตุลองดูอีกทีครับ

Code (PHP)
<?PHP
	$id=mysql_real_escape_string($_POST['id']);
	$stdname=mysql_real_escape_string($_POST['stdname']);
	$surname=mysql_real_escape_string($_POST['surname']);
	$class=mysql_real_escape_string($_POST['select']);
	
		if(empty($id)&& empty($stdname)&&empty($surname)&&empty($class))
	{
		echo "<script>alert('กรุณากรอกข้อมูลอย่างน้อย1อย่าง');history.back();</script>";
		exit();
	}
	$tid = $_SESSION['login'];			
	$and =false;
	$stdsql="SELECT SID,Sname,Ssname,Level_Id,Room FROM student WHERE ";
	if(trim($id)!="")
	{
		$stdsql.=" ( SID like '%".$id."%' OR Teacher like '%$tid%' )";
		$and=true;
	}
	if(trim($stdname)!="")
	{
		if($and)$stdsql.=" OR ";
		$stdsql.="  ( Sname like '%".$stdname."%' OR Teacher like '%$tid%'  )";
		$and=true;
	}
	if(trim($surname)!="")
	{
		if($and)$stdsql.=" OR ";
		$stdsql.=" (  Ssname like '%".$surname."%' OR  Teacher like '%$tid%' ) ";
		$and=true;
	}
	if(trim($class)!="")
	{
		if($and)$stdsql.=" OR ";
		$stdsql.=" (  Level_Id like '%".$class."%' OR  Teacher like '%$tid%' ) ";
		$and=true;
	}
	
	$stdresult=mysql_query($stdsql) OR die("<script>alert('Error!');history.back();</script>");
	$row	=	mysql_num_rows($stdresult);


ถ้ามี error อะไรบอกด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 14:59:11 By : 13eachz
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : tongspy เมื่อวันที่ 2012-03-24 14:43:32
รายละเอียดของการตอบ ::
คือ ผมต้องการค้นหาโดย ไส่ค่าที่ต้องการค้นหาอย่างน้อย 1เงื่อนขึ้นไป ถ้าเราจะค้นหา 2 เงื่อนไข 3 หรือ 4 หรือทุกเงื่อนไข ก็สามารถ ค้นหาได้อะครับ แต่อย่างน้อย userต้องกรอก1อย่างครับ ถ้ามีวิธีก็ช่วยทีนะครับ :)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 15:01:28 By : lnwsit
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : 13eachz เมื่อวันที่ 2012-03-24 14:59:11
รายละเอียดของการตอบ ::
ขอบพระคุณมากครับ ทำได้เเล้ว :)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-24 15:17:17 By : lnwsit
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดูทีครับอยากได้ Code ที่ค้นหาข้อมูลโดยต้องกรอกข้อมูลอย่างน้อย1อย่างขึ้นไป
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่