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,027

HOME > PHP > PHP Forum > การค้นหาแบบมีเงื่อนไขซ้ำๆหลายหลักแบบนี้จะค้นหาแบบไหนดีครับ



 

การค้นหาแบบมีเงื่อนไขซ้ำๆหลายหลักแบบนี้จะค้นหาแบบไหนดีครับ

 



Topic : 106196



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



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




ต้องการค้นหาข้อมูลจากตัวเลขที่เก็บไว้ให้แสดงแต่ตัวเลขที่มีการเลือกเท่านั้นครับ

ตัวอย่างฟอร์มรับค่าครับ เป็น Checkbox เลือกว่าต้องการหาตัวเลขอะไรบ้าง เพื่อจะแสดงชุดตัวเลขจากฐานข้อมูลมาได้ถูก

form

ตัวอย่างข้อมูลที่เก็บ

ฐานข้อมูล


ซึ่งข้อมูล 3 หลักแรก จะไม่นำมาใช้เลย จะหาแต่หลักที่ 4-10 เท่านั้น ข้อมูลที่มีทั้งหมดประมาณ 1000 ข้อมูลครับ



สิ่งที่อยากหา******ค่าที่ได้จะต้องมีแต่ตัวเลขที่เลือกเท่านั้น แต่ตอนแสดงผลจะเอา number_tel มาแสดง ข้อมูลที่ถูกเลือกครับ



ไม่ทราบว่าเราจะเอา คำสั่ง SQL Select ข้อมูลจากตาราง keynumber where มาเขียนเงื่อนไขยังไงดีให้มันวนหาข้อมูลที่ต้องการครับ

ตัวอย่างการค้นหา

search

ผลที่ได้ ข้อมูล 3 หลักแรกจะไม่นำมาคิดค่าคืออะไรก็ได้ครับ

resualt



Tag : PHP, MySQL









ประวัติการแก้ไข
2014-02-24 03:57:06
2014-02-24 15:23:35
2014-02-24 15:24:20
2014-02-24 15:28:22
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-02-24 03:56:34 By : pengbuts View : 896 Reply : 15
 

 

No. 1



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



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

มองภาพไม่ออก ^^"






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 09:27:42 By : {Cyberman}
 


 

No. 2



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



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


แก้ภาพใหม่ให้เห็นภาพมากขึ้นครับ T_T จากการค้นหา แม้ในชุดนั้นไม่ได้มีตัวเลขที่ติกทั้งหมด แต่มีตัวเลขที่เลือกอยู่ ซ้ำกันกี่ตัวก็ได้ ผลลัพธ์ก็จะได้แบบตัวอย่างนำมาแสดงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 15:27:25 By : pengbuts
 

 

No. 3

Guest


Substr เอาสามหลักแรกออกแล้ว % like หลักที่เหลือเปรียบเทียบกับตัวเลขที่ระบุเข้ามาทีละตัว เชื่อมด้วยโอปอเรเตอร์ AND ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 15:36:43 By : Meannerss
 


 

No. 4



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

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

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


จากรูป
- เลือก 2 แล้ว 2 ก็มาหมด
- เลือก 7 แล้ว 7 ก็มาหมด

งั้นแนะนำว่า
- เอา 2 ไป select เจออะไร ได้อะไร พักไว้ก่อน
- เอา 6 ไป select เจออะไร ได้อะไร พักไว้ก่อน
- เอา 7 ไป select เจออะไร ได้อะไร พักไว้ก่อน

แล้วหาทางเทียบค่า ค่าซ้ำเอามาตัวเดียว
คิดลอย ๆ นะ อาจจะไปเสริมได้........

เท่าที่วิเคราะร์ น่าจะเป็นระบบขายเบอร์โทรศัพท์
เมื่อลูกค้าเข้าระบบ ก็จะค้นหาว่าอยากได้เลขอะไร
น่าจะประมาณนั้น
ไม่รู้ถูกหรือเปล่า 555+
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 15:40:41 By : apisitp
 


 

No. 5



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



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


ใช่ครับ พอดีอยากจะขายเบอร์มงคลกับเพื่อนแต่อยากพัฒนาเว็บเอง แต่มางงตรงนี้แหละครับ
หรือมีใครรับเขียนเฉพาะส่วนนี้ไหมครับ ราคาเท่าไรครับ ติดมาหลายวัน ช่วงนี้ป่วยด้วย เบลอไปใหญ่เลย ^^

หากใครรับเขียนส่วนการค้นหาหลายเงื่อนไขอันนี้ทักมาที่เมล์ [email protected] หน่อยนะครับ จะส่งข้อมูลให้ครับ


ประวัติการแก้ไข
2014-02-24 15:58:14
2014-02-24 15:57:50
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 15:52:34 By : pengbuts
 


 

No. 6



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

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

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


ไม่ต้องใช้ num1 - num10 เลยครับ
// สมมุติ ตัวแปรที่รับตัวเลขแต่หลักเป็น
<input type="checkbox" name="number[]" value="0" /> 0
<input type="checkbox" name="number[]" value="1" /> 1
....

<input type="checkbox" name="number[]" value="9" /> 9

// เราใช้ foreach ลูปเอาข้อมูลมาคิวรี่

$sql = "";
$lastEle = count($_POST["number"])-1;
foreach($_POST["number"] as $key => $requiredNo){
    $sql .= "select * from tb_tel where $requiredNo like concat("%",right(number_tel,7),"%") ";
    if($lastEle < $key)
             $sql .= " union ";
}
echo $sql;  // เอาไปใช้ได้เลย


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 16:04:08 By : sakuraei
 


 

No. 7



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

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

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


$sql .= "select * from tb_tel where $requiredNo like concat("%",right(number_tel,7),"%") ";

เปลี่ยนเป็น single quote ครับ

$sql .= "select number_tel from tb_tel where $requiredNo like concat('%',right(number_tel,7),'%') ";


ประวัติการแก้ไข
2014-02-24 16:10:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 16:09:56 By : sakuraei
 


 

No. 8



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



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


ขอบคุณพี่ Unidentifier ครับ ขอลองก่อนนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 16:17:07 By : pengbuts
 


 

No. 9



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



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


พอผมติกเลือก 3 5 6 9 ได้ค่านี้ออกมาอ่ะครับ

select * from phone_number where 3 like concat('%',right(number_tel,7),'%') select * from phone_number where 5 like concat('%',right(number_tel,7),'%') select * from phone_number where 6 like concat('%',right(number_tel,7),'%') select * from phone_number where 9 like concat('%',right(number_tel,7),'%')

พอเอาไป select หา มันได้เป็นค่าว่างทำไงอ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 17:16:16 By : pengbuts
 


 

No. 10



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

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

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


สลับกันนิดหน่อยครับ

14.if($key < $lastEle)
15.$sql .= " union ";
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 17:34:10 By : sakuraei
 


 

No. 11

Guest


ตอบความคิดเห็นที่ : 7 เขียนโดย : sakuraei เมื่อวันที่ 2014-02-24 16:09:56
รายละเอียดของการตอบ ::
Code (SQL)
SELECT DISTINCT a.number_tel
FROM tb_tel a
INNER JOIN (
	SELECT '2' AS ct 
	UNION ALL	
	SELECT '6'	
	UNION ALL	
	SELECT '7'	
	UNION ALL	
	SELECT '9'
	) b ON a.number_tel LIKE '%' + b.ct + '%'


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 17:43:11 By : love9713
 


 

No. 12



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

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

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


ตอบความคิดเห็นที่ : 11 เขียนโดย : love9713 เมื่อวันที่ 2014-02-24 17:43:11
รายละเอียดของการตอบ ::
ไม่ต้องใส่ distinct ก็ได้ครับ เพราะในความเป็นจริงไม่มีทางที่เบอร์โทรศัพท์จะซ้ำกันอยู่แล้ว

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 17:52:52 By : sakuraei
 


 

No. 13



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

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

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


ตอบความคิดเห็นที่ : 11 เขียนโดย : love9713 เมื่อวันที่ 2014-02-24 17:43:11
รายละเอียดของการตอบ ::
เป็นการคิวรี่ที่น่าสนใจดีครับ UNION ALL น่ะเร็วกว่า UNION ครับ
น่าเอาทั้งสองแบบมาทดสอบจับเวลากับปริมาณข้อมูลมากๆดู
Quote:
select * from phone_number where 3 like concat('%',right(number_tel,7),'%')
union
select * from phone_number where 5 like concat('%',right(number_tel,7),'%')
union
select * from phone_number where 6 like concat('%',right(number_tel,7),'%')
union
select * from phone_number where 9 like concat('%',right(number_tel,7),'%')


Quote:
SELECT DISTINCT a.number_tel
FROM tb_tel a
INNER JOIN (
SELECT '2' AS ct
UNION ALL
SELECT '6'
UNION ALL
SELECT '7'
UNION ALL
SELECT '9'
) b ON a.number_tel LIKE '%' + b.ct + '%'

ลึกล้ำน่าดูครับ...


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 18:09:04 By : sakuraei
 


 

No. 14



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

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

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


ตามไม่ทัน ได้แต่ตามมาอ่าน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 19:34:58 By : apisitp
 


 

No. 15



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



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


ขอบคุณมากๆครับ ยังไม่เข้าใจวิธีใช้ เดี๋ยวขอลงก่อนครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-24 22:12:56 By : pengbuts
 

   

ค้นหาข้อมูล


   
 

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