PHP字符串和SQL的麻烦

时间:2012-06-03 03:25:41

标签: php sql string

我是PHP的初学者,但一直在论坛上尝试一个项目。我遇到了一个问题。

            $getLatest = dbquery("SELECT * FROM site_forum_thread_comments,site_forum_threads,site_forum_subs WHERE site_forum_thread_comments.thread_id=site_forum_threads.thread_id AND 
        site_forum_threads.sub_id=site_forum_subs.sub_id AND
        site_forum_subs.main_id='".$forum['ID']."'
        ORDER BY site_forum_thread_comments.timestamp DESC LIMIT 1");
            while ($latest = mysql_fetch_assoc($getLatest))
                {
                    $getUser = dbquery("SELECT * FROM users WHERE id='".$latest['user_comment_id']."'");
                    while ($user = mysql_fetch_assoc($getUser))
                    {
                            echo ' <BR>Latest Post: '.$latest['comment'].'
                            <BR>User: '.$user['username'].'
                            <BR>Forum: '.substr($latest['site_forum_threads.title'],0,20).'...';
                    }
                }

这只是代码的一小部分。会发生什么,$ getLatest从SQL查询中获取来自我数据库中许多不同表的代码。 我的问题: 在最后一部分论坛'.substry($ latest ['... blahblahblah']

我可以在其中添加表格功能吗?所以我可以从site_forum_threads中检索列“title”,因为我已经完成了它?因为在我的其他一个表中,还有一个名为“tables”的列,并且查询在它应该从哪个列获取数据之间混淆。

提前致谢!

编辑:@zerkms

$getLatest = dbquery("SELECT * FROM site_forum_thread_comments,site_forum_threads,site_forum_subs 
        site_forum_threads.title AS title_from_site_forum_threads 
        WHERE site_forum_thread_comments.thread_id=site_forum_threads.thread_id AND 
        site_forum_threads.sub_id=site_forum_subs.sub_id AND
        site_forum_subs.main_id='".$forum['ID']."' AND
        side_forum_threads.title= title_from_site_forum_threads
        ORDER BY site_forum_thread_comments.timestamp DESC LIMIT 1");
            while ($latest = mysql_fetch_assoc($getLatest))
                {
                    $getUser = dbquery("SELECT * FROM users WHERE id='".$latest['user_comment_id']."'");
                    while ($user = mysql_fetch_assoc($getUser))
                    {
                            echo ' <BR>Latest Post: '.$latest['comment'].'
                            <BR>User: '.$user['username'].'
                            <BR>Forum: '.substr($latest['title_from_site_forum_threads'],0,20).'...';
                    }
                }

1 个答案:

答案 0 :(得分:1)

是的,只需明确指定名称并将其别名

site_forum_threads.title AS title_from_site_forum_threads

并使用$latest['title_from_site_forum_threads']

访问它

总计选择部分可能看起来像

SELECT *, site_forum_threads.title AS title_from_site_forum_threads FROM ...

但我个人建议您始终只选择必要的东西,通过枚举手动用逗号分隔的所有字段