1

私は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から列「タイトル」を取得することができますか?私の他のテーブルの1つには、「テーブル」と呼ばれる列もあり、クエリは、データを取得する必要がある列の間で混同されているためです。

前もって感謝します!

編集:@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).'...';
                    }
                }
4

1 に答える 1

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 ...

ただし、個人的には、すべてのフィールドをカンマで区切って手動で列挙することにより、常に必要なものだけを選択することをお勧めします

于 2012-06-03T03:35:12.817 に答える