GORAGOD.com

freelance, web developer, web designer, hosting, domain name

ค้นหาและแบ่งหน้า php+sql server (ด่วนมากครับ รบกวนอีกรอบนะครับ)

ก็ยังไม่ได้อยู่ดีอ่ะครับ ถ้ายังไงช่วยเขียนโค้ดให้แบบเต็มๆได้มั้ยครับ รบกวนหน่อยครับผม

คือ ผมต้องการดึงข้อมูลที่เอกสารที่ใช้งานอยู่เท่านั้นและแสดงผลแบ่งหน้าด้วย ครับ โดยดึงจากตาราง Spec_List โดยกำหนดให้ดึงเฉพาะข้อมูลที่ใช้งานซึ่งก็คือฟิลด์ Stat_Doc

ถ้าเราเขียนเป็นคำสั่ง mysql ก็จะได้ดังนี้นะครับ

select * from Spec_List Where Stat_Doc = '1' limit 1,10

ประมาณ นี้นะครับ แต่ถ้าเป็น sql server มันใช้ limit ไม่ได้ ผมก็เลยไปค้นหาเจอ select top * ........ ตอนนี้แบ่งหน้าได้แล้วครับ แต่ว่า จะแทรกโค้ดค้นหาตรงไหนนี่สิ ยังหาไม่เจอเลยครับ

$sql="select top $pagelen * from Spec_List where Doc_Id not in(select top $goto Doc_Id from Spec_List order by Rev asc)order by Rev asc";

ขอรบกวนท่านอาจารย์ทุกท่านด้วยครับ ช่วยแนะนำหน่อยนะครับ ขอบพระคุณมากๆนะครับ และขอโทษที่โพสซ้ำ

28 ต.ค. 2551 3 4,251

เอา sql ตรงที่เขียน "ค้นหา" มาให้ดูหน่อย

#1

โค้ดที่เขียนนะครับ

$sql="select top $pagelen * from Spec_List where Doc_Id not in(select top $goto Doc_Id from Spec_List order by Rev asc)order by Rev asc";

อธิบาย

1. $pagelen คือ จำนวนแถวที่จะให้แสดง

2. $goto คือ แถวแรกที่จะแสดง

3. where Doc_Id ตรงนี้ใส่เงื่อนไขไม่ได้เช่น where Doc_Id='10' และใน () Doc_Id ต้องเหมือนกับ where ข้างหน้าครับ

 

ไม่ทราบว่าต้องแก้ยังไงครับรบกวนด้วยนะครับ หรือขอเว็บที่เกี่ยวกับ การเขียนติดต่อกับ sql server ก็ได้ครับผม

 

 

#2

SELECT TOP(10) * FROM table_name WHERE (field_name LIKE '%search%') AND column NOT IN (SELECT TOP(10) *  column FROM table_name WHERE field_name LIKE '%search%' ORDER BY column) ORDER BY column

เปนียบเทียบเป็นภาษาไทย

เลือก 10 รายการ ที่ field_name คล้ายกับ search และ column ไม่ได้อยู่ใน ( เลือก 10 รายการ ที่ field_name คล้ายกับ search ) 

ระวังด้วย 10 ตัวหลังต้องคูณด้วย page - 1 ก่อนนำไป query

#3
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^