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

HOME > ASP > ASP Forum > ตัวเลือกเพื่อสร้าง sql statement สวัสดีครับ ผมสร้าง form เพื่อรับตัวเลือกมาค้นหา ข้อมูลใน ฐานข้อมูล



 

ตัวเลือกเพื่อสร้าง sql statement สวัสดีครับ ผมสร้าง form เพื่อรับตัวเลือกมาค้นหา ข้อมูลใน ฐานข้อมูล

 



Topic : 005374

Guest




สวัสดีครับ ผมสร้าง form เพื่อรับตัวเลือกมาค้นหา ข้อมูลใน ฐานข้อมูล ตอนนี้มี field ทั้งหมด 5 field คือ 1.code 2.name 3.quatity 4.formdate 5. todate โดย 1.คือรหัสสินค้า 2.รายการสินค้า 3.ยอดคงเหลือ 4.วันที่รับสินค้า 5.วันที่รับสินค้าสุดท้าย(ในกรณีที่ค้นหา เป็นช่วงก็ให้ระบุวันที่ในข้อนี้)

ตอนนี้ผมกำหนด
chkSum=0 'สร้างตัวแปรขึ้นมาตรวจสอบเงื่อนไขการค้นหา
If frm_se_code<>"" Then chkSum=chkSum+1
If frm_se_name<>"" Then chkSum=chkSum+2
If frm_se_q<>"" Then chkSum=chkSum+4
If fromdate="ON" Then chkSum=chkSum+8
If todate="ON" Then chkSum=chkSum+16
if chkSum=0 Then chkSum=cInt(Request.QueryString("chkSum"))
แล้วก็มา select case chkSum เอาว่า ได้ค่าอะไรแสดงว่า user ต้องการค้นอ่ะไร โดยการมา สร้าง SQL ตอนนี้ทั้งหมด 31 case ยาวเฟ้ย เลยครับ ..... -_-' ปัญหาคือว่าผมจะเพิ่มตัวเลือกในการค้นหาอีก ทีนี้ ยาวเป็น 80 case เลย

ผมคิดว่าจะมา เช็คว่า user ต้องการเช็คอะไรก็ให้ string เป็น SQL เอา ลักษณะนี้
SQL="SELECT * FROM product "
if frm_se_code<>"" Then SQL=SQL&" WHERE product ='"& frm_se_code &"'"
ไล่ไปเรื่อยๆ ก็มาติดที่ว่า จะ เชื่อม SQL ด้วย AND อีก ไม่รู้จะเช็คยังไง

ขอความกรุณาช่วยเหลือด้วยครับ


Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 6 ก.ย. 2548 21:52:05 By : [email protected] View : 3340 Reply : 3
 

 

No. 1



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



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


เห่อ ๆ ถ้ามี 80 case คุณก็ต้อง if ทั้ง 80 case สิครับ
ทำไมจะมีเงื่อนไขในการค้นหาอะไรเสียมากมายขนาดนั้น

SQL="SELECT * FROM product "
if frm_se_code<>"" Then SQL=SQL&" WHERE product ='"& frm_se_code &"'"
if frm_se_name<>"" then sql=sql &"where product='"& frm_se_name &"'"
if frm_se_q <> "" then sql=sql &"where product='"& frm_se_q &"'"
if .....
...
..
..
แบบนี้การประมวลผลก็แย่อะสิครับ..ทำงานหนัก..ทำให้เกิดความล่าช้า..เพราะว่าจะต้องตรวจสอบเงื่อนไขตั้ง 80 เงื่อนไข...อืมม..จำเริญ..ถ้าเป็นงานใหญ่ ๆ ก็รอชาติหน้าละกัน






Date : 7 ก.ย. 2548 08:47:55 By : นายกระจอก
 


 

No. 2

Guest


สวัสดีครับ
ขอบคุณครับ คุณ นายกระจอกที่ให้ความช่วยเหลือ
ได้คำตอบแล้วครับ สำหรับประเด็นนี้ฝรั่งเรียกว่า Dynamic SQL Query จริงๆ ผมมีแค่ 5 ตัวเลือกเท่านั้นแหละครับ ที่ใช้ในการค้นหา มี
1. รหัสสินค้า (p_code)
2. รายการสินค้า (p_name)
3. ยอดคงเหลือสินค้า (p_que)
4. วันที่ค้นหา (from_date)
5. วันที่สิ้นสุด (to_date)

form design
ที่ form ก็มี input อยู่ 3 คือที่ 1.รหัสสินค้า 2.รายการสินค้า 3. ยอดคงเหลือ เป็น select อีก 3 ที่ข้อ 3 ,4 , 5 ที่ข้อ 3 คือมีสัญลักษณ์ ใช้คำนวณ = < > ส่วน 4,5 คือวันที่ ไม่ให้ระบุเอง เดี๋ยว error จะได้ง่ายขึ้น มี checkbox อีก 2 ที่หน้าวันที่ ข้อ 4,5

การ Validate
ก็ไล่เช็คเอาครับว่า user จะค้นอะไร ถ้า 3 ข้อแรก ก็จาก การ input หรือไม่ ถ้า ค้นวันที่ ก็ต้อง check ที่ checkbox หน้าข้อ 4 หรือ 5 ด้วย โดยที่ ถ้าเช็คข้อใดข้อหนึ่ง ก็ให้ค้นวันที่นั้นๆ ถ้าเช็ค ทั้งคู่ก็ให้ค้นเป็นช่วง แล้วที่ข้อ 3 ต้องเป็นตัวเลขเท่านั้น

ปัญหาที่พบ
จะเรียกว่าปัญหาหรือไม่ก็ได้ แต่ผมเรียกว่าปัญหา ผมเลือกใช้วิธี การ เอามาตรวจสอบก่อน โดยเพิ่ม ค่าให้ตัวแปร (จากตัวอย่าง) ทำให้เกิด case ที่จะมา gen SQL ทั้งหมด 31 case ก็ สร้างกันไป แต่ผมมีปัญหาถ้าต้องการค้นตัวอื่นล่ะ case มันจะเพิ่มเป็นทวีคูณตลอด ทำให้โปรแกรม อ่อนมากๆ

ผมใช้วิธีแบบคุณนายกระจอกแหละครับเช็ค แล้วมา แปะ SQL เลย ได้ผลครับ โค๊ดลดไปเยอะ แต่ผมไปเจอของฝรั่งนะครับ มีการใช้ตัวแปร เช็ค ค่า ก่อนแปะ WHERE AND คั่นไว้ด้วย

จึงเป็นว่า งานใหญ่ๆ ไม่ต้องรอชาติหน้าครับ (ฝรั่งไม่รู้จัก ชาติหน้า) เค้าหาทางแก้



Date : 8 ก.ย. 2548 09:24:59 By : วิวัฒน์ แก้วสุข
 

 

No. 3

Guest


คุณวิวัฒน์ครับ พอดีผมอ่านที่คุณอธิบายแล้วไม่เข้าใจ อยากให้ช่วยโพสท์ตัวอย่างให้ดูหน่อยอ่ะครับ ตอนนี้อยากจะทำการค้นหาแบบมีเงื่อนไขแบบนี้เหมือนกัน
Date : 12 ก.ย. 2548 10:22:04 By : ทศ
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ตัวเลือกเพื่อสร้าง sql statement สวัสดีครับ ผมสร้าง form เพื่อรับตัวเลือกมาค้นหา ข้อมูลใน ฐานข้อมูล
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่