 |
ถามเรื่อง SQL หน่อยครับ รูปประกอบ ในรูปจะมีข่าว 2 ฝั่ง คือ ซ้าย กับขวา แล้วก็ใช้ query คนละตัว |
|
 |
|
|
 |
 |
|
รูปประกอบ

ในรูปจะมีข่าว 2 ฝั่ง คือ ซ้าย กับขวา แล้วก็ใช้ query คนละตัว แต่ table เดียว กัน
คือผมต้องการ ถ้าข่าวไหนที่โชว์ที่ด้านซ้าย 3 อัน แล้วไม่ต้องโชว์ด้านขวา
ต้อง query ยังไงครับ ด้านขวา คือ ไม่อยากให้ซ้ำซ้อนกันครับ
sql ด้านซ้าย
Code (PHP)
SELECT news_id, news_title, news_short, news_cat, news_thumb FROM content_data WHERE news_cat in ('2', '3', '4', '5') ORDER BY news_id DESC, news_date DESC LIMIT 0,3
sql ด้านขวา
Code (PHP)
SELECT news_id, news_title, news_date, news_cat, news_thumb FROM content_data WHERE news_cat in ('2', '3', '4', '5') ORDER BY news_id DESC, news_date DESC LIMIT 0,10
ขอบคุณครับ
Tag : - - - -
|
|
 |
 |
 |
 |
Date :
2010-03-24 12:07:49 |
By :
sap |
View :
978 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เก็บ id ที่ได้จากด้านซ้าย แล้วเอามา not in ด้านขวา
|
 |
 |
 |
 |
Date :
2010-03-24 12:14:05 |
By :
plakrim |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เก็บ id ก็ยังไงอ่ะครับ
นี่เป็น loop ด้านซ้าย
Code (PHP)
$sql = "SELECT news_id, news_title, news_short, news_cat, news_thumb FROM content_data WHERE news_cat in ('2', '3', '4', '5') ORDER BY news_id DESC, news_date DESC LIMIT 0,3 ";
$result = mysql_query($sql);
while($rs = mysql_fetch_array($result))
{
// แสดงข้อมูล
}
|
 |
 |
 |
 |
Date :
2010-03-24 13:17:26 |
By :
sap |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$sql = "SELECT news_id, news_title, news_short, news_cat, news_thumb FROM content_data WHERE news_cat in ('2', '3', '4', '5') ORDER BY news_id DESC, news_date DESC LIMIT 0,3 ";
$result = mysql_query($sql);
$tmp = array();
while($rs = mysql_fetch_array($result))
{
array_push($tmp,$rs["news_id"]);
}
อันนี้เก็้บไว้ไปคิดต่อว่าจะต้องทำยังไง หวังว่าคงคิดได้
Code
if(count($tmp) > 0)
echo "'" . implode("','",$tmp) . "'";
|
 |
 |
 |
 |
Date :
2010-03-24 14:31:49 |
By :
plakrim |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$sql = "SELECT news_id, news_title, news_short, news_cat, news_thumb FROM content_data WHERE news_cat in ('2', '3', '4', '5') ORDER BY news_id DESC, news_date DESC LIMIT 0,3 ";
$result = mysql_query($sql);
$tmp = array();
while($rs = mysql_fetch_array($result))
{
$id = $rs['news_id'];
$newsid[] = $id;
}
$news = implode(',',$newsid);
แล้วก็เอา $news ไปใช้ NOT IN ใน sql ด้านขวา
|
 |
 |
 |
 |
Date :
2010-03-24 17:24:21 |
By :
ICrazyMan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|