จอย มาครึ่งวันไม่ได้ซะที ชี้แนะหน่อยครับ ลองหลายแบบแต่ยังไมผ่านครับ
คือจากเดิมผมจอยสองตารางมันผ่านได้ครับแต่ แต่พอมาจอยเป็น สาม ตารางมันข้อมูลซ้ำออกมาเปลี่ยน inner join ก็ไม่ผ่าน ครับ มึนหมดและ ชี้แนะหน่อยครับ
Code (PHP)
/*$sql = "SELECT SQL_CALC_FOUND_ROWS *,DATE_FORMAT(date_post, '%d-%m-%Y : %H.%i.%s') AS datepost,topic.*,admin_users.*
FROM topic LEFT JOIN admin_users ON topic.amd_id = admin_users.amd_id
ORDER BY date_post DESC
LIMIT $start_row, $rows_per_page;";*/
$sql = "SELECT SQL_CALC_FOUND_ROWS *,DATE_FORMAT(date_post, '%d-%m-%Y : %H.%i.%s') AS datepost,
topic.amd_id,
topic.topic_id,
topic.title,
topic.details,
topic.date_post,
topic.num_reply,
topic.ip,
reply.topic_id,
reply.reply_id,
reply.message,
reply.name,
reply.date_reply,
reply.ip,
reply.amd_id,
admin_users.amd_id,
admin_users.username
FROM
topic
Inner Join reply ON topic.topic_id = reply.topic_id
Inner Join admin_users ON topic.amd_id = admin_users.amd_id
ORDER BY date_post DESC
LIMIT $start_row, $rows_per_page;";
$result = mysql_query($sql);
Tag : PHP, MySQL
Date :
2014-07-03 14:21:03
By :
shield
View :
1495
Reply :
12
ช่วยเอาโครงสร้าง ของตารางมาดีกว่าครับ
และ เขียน select field ที่ต้อง การ คำอธิบาย field ที่อ้างอิง
(ผมว่าถ้าคุณเขียนออกมาได้ ก็แทบไม่ต้องการความช่วยเหลือแล้วล่ะมั้งครับ 5555)
Date :
2014-07-03 14:27:04
By :
Chaidhanan
นี่ครับโครงสร้าง
ฟิวที่ต้องการก็มีดังนี้ครับ
topic_id
title
username
datepost
num_reply
date_reply
(ผมว่าถ้าคุณเขียนออกมาได้ ก็แทบไม่ต้องการความช่วยเหลือแล้วล่ะมั้งครับ 5555) ""ผมยังหัดขับเลยครับ"" *-*
Date :
2014-07-03 14:55:09
By :
shield
เริ่มขั้นตอนแรกครับ
ตารางหลัก คือ topic ต้องการ
topic_id
title
datepost
ตารางที่ 2 admin_user ต้องการ
username
Code (SQL)
select a.topic, a.title, a.datepost, b.username
from topic as a
left join admin_user as b on a.amd_id = b.amd_id
พอมาตารางที่ 3 reply ต้องการ
count(reply)
max(date reply)
Code (SQL)
select count(amd_id) as crp, max(date_reply) as mdr from reply where reply.topic_id=topic.topic_id
เอาไปเชื่อมกับ กับ คิวรี่ด้านบน
Code (SQL)
select a.topic, a.title, a.datepost, b.username, count(c.amd_id) as crp, max(c.date_reply) as mdr
from topic as a
left join admin_user as b on a.amd_id = b.amd_id
left join reply as c on c.topic_id=a.topic_id
group by a.topic_id
Date :
2014-07-03 15:10:20
By :
Chaidhanan
ยังไม่ผ่านครับ *-*
Date :
2014-07-03 15:23:29
By :
shield
ไม่ผ่านเพราะ error หรือ ข้อมูลไม่ถูกต้องครับ ถ้าข้อมูลไม่ถูกต้อง ขอดู result ที่ได้มาหน่อยครับ
ถ้าerror ก้เอาเออเร่อร์มาดูทีครับ และขอ query string( ชุดคำสั่ง ) มาดูด้วยครับ
Date :
2014-07-03 15:29:28
By :
Chaidhanan
นี่ครับ
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in 126 คือ while($rows = mysql_fetch_array($result))
Code (PHP)
<? include("include/connect.php");
include 'include/paging.inc.php';
$current_page = 1;
if(isset($_GET['page']))
{
$current_page = $_GET['page'];
}
$rows_per_page = 4;
$start_row = paging_start_row($current_page, $rows_per_page);
$sql = "SELECT SQL_CALC_FOUND_ROWS *,DATE_FORMAT(date_post, '%d-%m-%Y : %H.%i.%s') AS datepost,
a.topic, a.title, a.datepost, b.username, count(c.amd_id) as crp, max(c.date_reply) as mdr
from topic as a
left join admin_user as b on a.amd_id = b.amd_id
left join reply as c on c.topic_id=a.topic_id
group by a.topic_id
ORDER BY date_post DESC
LIMIT $start_row, $rows_per_page;";
$result = mysql_query($sql);
$found_rows = mysql_query("SELECT FOUND_ROWS();");
$total_rows = mysql_result($found_rows, 0, 0);
$total_pages = paging_total_pages($total_rows, $rows_per_page);
?>
<p class="newtopic"><a href="newtopic.php" target="_blank">ตั้งกระทู้ใหม่</a></p>
<table border="1">
<tr>
<th>หัวข้อ</th>
<th width="150">เริ่มโดย</th>
<th width="40">ตอบ</th>
<th width="180">ตอบล่าสุด</th>
</tr>
<?
while($rows = mysql_fetch_array($result))
{
?>
<tr>
<td><a href="Webboard_ListPost_Detail.php?topicid=<?=$rows["topic_id"];?>" target="_blank"><?=$rows["title"];?></a></td>
<td><center><?=$rows["username"];?><br><?=$rows["datepost"];?></center></td>
<td><center><?=$rows["num_reply"];?></center></td>
<td><?=$rows["date_reply"];?> <br><span>โดย <?=$rows["username"];?></span></td>
</tr>
<?}?>
</table>
<?
echo "<h4 align='center'>หน้า: $current_page / $total_pages <br /></h4>";
$page_range = 5;
$qry_string = "";
$page_str = paging_pagenum($current_page, $total_pages, $page_range, $qry_string);
echo "<h5 align='center'>$page_str;</h5>"
?>
Date :
2014-07-03 15:41:23
By :
shield
join น่าจะถูกแล้ว แต่ผิดที่ coding คุณหรือป่าว ดู ฟิวด์ข้อมูล ตัวแปร ว่ามีหรือป่าว หรือตรงกันหรือป่าว
Code (PHP)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Date :
2014-07-03 15:53:39
By :
compiak
สักครู่ครับ ของลองสร้างตารางสักครู่ครับ
Date :
2014-07-03 16:38:27
By :
Chaidhanan
SELECT a.topic , a.title, a.datepost , b.username, count( c.amd_id ) AS crp, max( c.date_reply ) AS mdr
FROM topic AS a
LEFT JOIN admin_user AS b ON a.amd_id = b.amd_id
LEFT JOIN reply AS c ON c.topic_id = a.topic_id
GROUP BY a.topic_id
สีแดง เป็นตัวที่ผิด แก้เป็น
Code (SQL)
select a.topic_id, a.title, a.date_post, b.username, count(c.amd_id) as crp, max(c.date_reply) as mdr
from topic as a left
join admin_user as b on a.amd_id = b.amd_id
left join reply as c on c.topic_id=a.topic_id group by a.topic_id
ประวัติการแก้ไข 2014-07-03 16:55:15 2014-07-03 16:56:10
Date :
2014-07-03 16:54:34
By :
Chaidhanan
ขอบคุณมากครับคุณ Chaidhanan เดี่ยวผมจะไปลองทำดูครับ
Date :
2014-07-03 17:19:34
By :
shield
Load balance : Server 05