Wed 4 Oct 2006 23:28:09
ตารางแรก News
id_news titile content date
ตารางที่ 2 Img
Id id_news file_name
ตารางแรกจะเก็บข้อมูล หัวข้อข่าว เนื้อหาของข่าว ครับ ตารางที่ 2 จะเป็น ตารางที่เก็บ รูปภาพ โดยจะนำ id_news มาอ้างอิง ว่าภาพนี้อยู่ กับข่าวข่าวไหน

ผมจะใช้มันออกทาประมาณนี้อะครับ
ปัญหาอยู่ตรงที่ จะเรียกข้อมูลจาก 2 ตารางออกมายังไง
คือรูปภาพผมมันจะต้องผ่าน ฟังชั่น ย่อภาพด้วย
require_once("lib/config.inc.php");
require_once("lib/class.php");
$myPic = $dir.$data[img];
$getSize = getimagesize($myPic);
$shape = ($getSize[img] > $getSize[0]) ? "h=140" : "w=140";
$showPic = "lib/image.php?img=".$dir.$data[img]."&".$shape;
echo "<img src='$showPic' ";
ถึงจะย่อมันออกมา เล็กๆได้
และรูปภาพผมใน ข่าวๆ หนุ่งจะมี ภาพหลายๆ ภาพ ก็จะดึงมาภาพ เดี่ยวที่จะทำ รีไซต์ ย่อภาพ
ไว้ประกอบกับหัวข้อข่าวดัง รูปครับ
ผมลอง While แล้ว มันไม่ได้ครับ
ยังไงช่วยรบกวนแนะนำด้วยนะครับ
SELECT n.title, n.content, i.file_name FROM News n INNER JOIN Img i ON i.id_news=n.id_news
แต่คำสั่งข้างบนจะมีปัญหาในกรณีที่มีจำนวนรูปต่อข่าวมากกว่า 1 ได้ครับ สามารถเขียนใหม่ได้เป็น
SELECT n.id_news, n.title, n.content, i.file_name FROM News n INNER JOIN (SELECT i.id_news, i.file_name FROM Img i WHERE i.id_news IN (SELECT n.id_news, n.title, n.content FROM News n)) AS i ON i.id_news=n.id_news
เป็นการใช้ sub-query และการ join ร่วมกันครับ เพื่อให้ใช้คำสั่ง query ครั้งเดียวได้ครับ
ส่วนการ resize นั้น ก็ใช้การเปิดไฟล์ต้นฉบับแล้วก็ทำการ resize เท่านั้นครับ ลองดูในกระทู้เก่าๆผมเคยเอาโค๊ดการ resize มาแสดงไว้แล้วครับ

















