 |
ใครเก่ง sql คือผมไม่ทาบว่า p. มันคืออะไรครับ ช่วยทีครับ |
|
 |
|
|
 |
 |
|
Code
$sql_sl_post = "select p.sale_id,p.sale_title,p.sale_type,p.sale_price,p.sale_level,p.sale_readcount,p.sale_dateedit,p.sale_date,count(DISTINCT c.com_id) as comment,i.picpost_path from buysale as p LEFT JOIN comment as c ON p.sale_id = c.sale_id LEFT JOIN picpost as i ON p.sale_id = i.sale_id where $word $type $category $subcategory $state $price $level group by p.sale_id order by p.sale_date DESC LIMIT $goto,$pagelen"; //ทำการแสดงผลโดยใช้คำสั่ง Limit เพื่อแสดงจำนวนข้อมูลต่อหน้า
$qr_sl_post = mysql_db_query($dbname,$sql_sl_post);
$totalCurrecords= mysql_num_rows($qr_sl_post);
คือผมไม่ทาบว่า p. มันคืออะไรคับ
ขอบคุณครับ
Tag : PHP, MySQL
|
|
 |
 |
 |
 |
Date :
2011-05-18 13:49:30 |
By :
crossnova |
View :
933 |
Reply :
7 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือตาราง buysale as p ครับ Go to : SQL ALIAS
|
 |
 |
 |
 |
Date :
2011-05-18 13:55:07 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เป็นเงื่อนไขที่ใช้ระบุการรับข้อมูลจาก ตาราง
p. ของท่าน ก็ มาจากตาราง buysale จากการระบุ buysale as p
การระบุเงื่อนไขแบบนี้เพื่อไม่ให้เกิดจากรับข้อมูลที่ซ้ำกัน ระหว่าง PK กับ FK ในกรณีที่
มีการ join ข้อมูลสองตาราง2ขึ้นไปครับ
|
ประวัติการแก้ไข 2011-05-19 00:06:45
 |
 |
 |
 |
Date :
2011-05-18 14:49:50 |
By :
kuzaifi |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ
ผมมีอีกคำถามนึงคับ
คือผมอยากให้มันเรียงตามวันที่ โพสข้อมูล ล่าสุด
และถัดมา ถ้ามีการคอมเม้นโพสนั่นๆ ให้โพสนั่นๆที่มีการคอมเม้นล่าสุดมาแสดงเป็นข้อมูลบนสุด
พอจะเป็นไปได้ไหมคับ
โดยมีอีกตารางหนึ่งชื่อ comment เก็บข้อมูล
com_id ,sale_id ,mem_id,com_detail,com_date
|
ประวัติการแก้ไข 2011-05-18 15:36:08
 |
 |
 |
 |
Date :
2011-05-18 15:33:53 |
By :
crossnova |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
order by com_date,p.sale_date DESC
เพิ่มฟิลด์ com_date เข้าไปที่ order by อีกฟิลด์ก็น่าจะได้แล้วนี่คะ
เพราะในโค้ดก็ join ตาราง comment เอาไว้แล้ว
|
 |
 |
 |
 |
Date :
2011-05-18 16:15:26 |
By :
susaya |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมเพิ่ม
$sql_sl_post = "select c.com_id,c.com_date,p.sale_id,p.sale_title,p.sale_type,p.sale_price,p.sale_level,p.sale_readcount,p.sale_dateedit,p.sale_date,count(DISTINCT c.com_id) as comment,i.picpost_path from buysale as p LEFT JOIN comment as c ON p.sale_id = c.sale_id LEFT JOIN picpost as i ON p.sale_id = i.sale_id where $word $type $category $subcategory $state $price $level group by p.sale_id order by p.sale_date DESC,c.com_date DESC LIMIT $goto,$pagelen";
$qr_sl_post = mysql_db_query($dbname,$sql_sl_post);
$totalCurrecords= mysql_num_rows($qr_sl_post);
group by p.sale_id order by p.sale_date DESC,c.com_date DESC LIMIT
เข้าไปมัน ไม่เกิดไรขึ้นเลย ผมไม่รู้ว่าผมทำถูกป่าว 
|
 |
 |
 |
 |
Date :
2011-05-18 16:35:30 |
By :
crossnova |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
update ครับ
$sql_sl_post = "select c.com_id,c.com_date,p.sale_id,p.sale_title,p.sale_type,p.sale_price,p.sale_level,p.sale_readcount,p.sale_dateedit,p.sale_date,count(DISTINCT c.com_id) as comment,i.picpost_path from buysale as p LEFT JOIN comment as c ON p.sale_id = c.sale_id LEFT JOIN picpost as i ON p.sale_id = i.sale_id where $word $type $category $subcategory $state $price $level group by p.sale_id order by c.com_date DESC,p.sale_date DESC LIMIT $goto,$pagelen";
เรียงตามต้องการแล้วครับแต่ปรากฎว่า พอตั้งกระทู้ใหม่มันดันลงมาแทรกกระทู้ที่มีการคอมเม้น
คือ อยู่ล่างกระทู้ที่มีการคอมเม้น แต่อยู่บนสุดข้องกระทู้ใหม่
|
 |
 |
 |
 |
Date :
2011-05-19 10:34:27 |
By :
crossnova |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แก้ปัญหาได้แล้ว ครับ
เพิ่ม field ใหม่เอาไว้เรียงข้อมูลล่าซะเลย อิอิ
ขอบคุณทุกท่านมากที่มาให้ความรู้คับ
|
 |
 |
 |
 |
Date :
2011-05-19 15:09:50 |
By :
crossnova |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|