我在某种类型的留言板上工作,并且除了一小部分外,我的所有内容都正在运行,这些线程需要按最新帖子的日期/时间排序在他们(标准的论坛格式),即时通讯包裹着我的头很多麻烦。使用另一个查询的结果对查询的结果进行排序
这是我使用的querys,我知道它不漂亮,它不安全,一旦我学会了如何正确地做它,我将重新加工它们。
$sql = "SELECT Thread_ID, Thread_Title, Board_ID, Author FROM threads WHERE Board_ID='$Board_ID' LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
while ($row = mysql_fetch_assoc($result))
{
$Thread_ID = $row['Thread_ID'];
$Thread_Title = $row['Thread_Title'];
$Board_ID = $row['Board_ID'];
$Author = $row['Author'];
$getauthor = mysql_query("SELECT * FROM members WHERE Member_ID='$Author'");
while ($row = mysql_fetch_assoc($getauthor))
{
$Post_Author = $row['Post_As']; }
$postcount = mysql_query("SELECT Post_ID FROM posts WHERE Thread_ID='$Thread_ID'");
$Posts = mysql_num_rows($postcount);
$getlatest = mysql_query("SELECT * FROM posts WHERE Thread_ID='$Thread_ID' ORDER by Post_DateTime DESC LIMIT 1");
while ($row = mysql_fetch_assoc($getlatest))
{
$Post_DateTime = time_ago($row['Post_DateTime']);
$Member_ID = $row['Member_ID']; }
$getmember = mysql_query("SELECT * FROM members WHERE Member_ID='$Member_ID'");
while ($row = mysql_fetch_assoc($getmember))
{
$Post_As = $row['Post_As']; }
那么什么即时试图做的是排序$由$ getlatest SQL中,我尝试添加上述$ sql中的另一个查询做了基本相同的$ getlatest,然后通过,但可惜它只是打破了$ SQL命令一切。
我知道我必须做一个变量来对$ sql进行排序,但是那个变量让我很生气。
任何帮助,将不胜感激,谢谢。根据要求
当前的错误消息:
致命错误:SQL - 未知列 '的条款' posts2.LatestPost“中 - 选择threads.Thread_ID,threads.Thread_Title,threads.Board_ID,threads.Author,Sub1的.LatestPost,Sub1.PostCount,members.Post_As,members2.Member_ID AS LastPostMemberID,members2.Post_As AS LastPostMemberPostAs FROM线程INNER JOIN(选择的thread_id,MAX(posts.Post_DateTime)AS LatestPost,COUNT(*)AS PostCount来自帖子GROUP BY的thread_id )Sub1 ON threads.Thread_ID = Sub1.Thread_ID INNER JOIN members ON ON threads.Author = members.Member_ID INNER JOIN posts posts2 ON posts2.Thread_ID = Sub1.Thread_ID AND posts2.LatestPost INNER JOIN members members2 ON members2.Member_ID = posts2.Member_ID WHERE threads.Board_ID ='1'ORDER BY Sub1.LatestP OST DESC LIMIT 0,25在C:\ WAMP \ WWW \论坛\ \包括在threads.php线路86
这打破了一整套querys的,我不明白一半查询正在试图做的,但它看起来像它试图通过犯规LatestPost排序存在任何线程或职位表 – user2558771
它按LatestPost,这是最大的发布日期为每个线程。看看MAX在SELECT – Kickstart
本的第一行对错误的在我的致命错误引发回:SQL在C:\ WAMP \ WWW \论坛\ \包括在threads.php线86线86 $结果= mysql_query ($ sql,$ conn)或trigger_error(“SQL”,E_USER_ERROR); – user2558771