これは数回前に尋ねられましたが、私はこのサイトのすべての回答を試しています。MYSQLとPHPを使用してポストストリームとそれに関連するコメントをループします
私は、投稿をループし、フィード内の各投稿(Facebookに似ています)に関連するコメントをループする、Twitterタイプのフィードを作成しようとしています。私はこれを行う最善の方法が2つの別々のクエリか1つのクエリのすべてであるかどうか、またどのようにすべてループするのかはわかりません。
次のように私のデータベース構造は次のとおりです。
--TWEETS-- --COMMENTS-- --USERS--
id id id
accountno accountno accountno
userid userid email
createdat createdat name
tweet tweetid
image comment
次のように私のPHP関数は次のとおりです。
function gettweets(){
$result = mysql_query("SELECT tweets.id,tweets.tweet,tweets.createdat,tweets.userid,users.name,users.avatar,users.biog FROM tweets INNER JOIN users ON tweets.userid = users.id WHERE tweets.accountno ='123456' ORDER by tweets.ID DESC LIMIT 20");
while($row = mysql_fetch_array($result)) {
$name = $row['name'];
$biog = $row['biog'];
$avatar = $row['avatar'];
$newtweet= $row['tweet'];
$tweetid = $row['id'];
$timeago = ago($row['createdat']);
$thistweet = '';
$thistweet .= "<div class='tweet' data-tweetid='$tweetid'>";
$thistweet .= "<div class='left'>";
$thistweet .= "<img width='45' height='45' src='$avatar' alt='placeholder+image'>";
$thistweet .= "</div><!--/-->";
$thistweet .= "<div class='right'>";
$thistweet .= "<span class='name'>$name says</span>";
$thistweet .= "<p>";
$thistweet .= "$newtweet";
$thistweet .= "</p>";
$thistweet .= "<span class='replybar'> $timeago <a class='like' data-tweetid='$tweetid' href='' title=''>Like</a> | ";
$thistweet .= "<a class='favourite' data-tweetid='$tweetid' href='' title=''>Favourite</a> | ";
$thistweet .= "<a class='mainreply' href='' title=''>Reply</a></span>";
//I WANT TO LOOP OUT THE COMMENTS HERE
$thistweet .= "</div><!--/--><span class='clear'></span></div><!--End Tweet -->";
return $thistweet;
}
}
**私は「EDIT * * *
私はそれを作成する方法に関して以下の答えを試しましたが、私はいませんそれぞれのつぶやきの下の関連するコメントと共に「つぶやき」をループすることを成功裏に管理する。しかし、私の問題は、私は、これは文のJOIN使用する新しいイムとしての私のSQLクエリでの問題だと思う、それはすなわち
tweet 1
-comment 1.1
tweet 1
-comment 1.1
-comment 1.2 (Tweet 1 has 2 comments so loops out tweet 1 two times)
tweet 2
-comment 2.1
tweet 2
-comment 2.1
-comment 2.2
tweet 2
-comment 2.1
-comment 2.2
-comment 2.3 (Tweet 2 has 3 comments so loops out tweet 2 three times)
その特定のつぶやきのために私が持っているコメントのあらゆる数のための私の「つぶやき」を行うループしているということです。これは私のクエリで現在持っているものです
"SELECT tweets.accountno, tweets.id,tweets.tweet,tweets.createdat,tweets.userid,users.name,users.avatar,users.biog,comments.comment FROM tweets INNER JOIN users ON tweets.userid = users.id JOIN comments ON tweets.id = comments.tweetid WHERE tweets.accountno ='123456' ORDER by tweets.ID DESC LIMIT 20"
誰でも手助けできますか?とても有難い?
ありがとうございます。それは意味をなさないようです。後で私が家に帰るときに2番目のオプションを試してみます。私は3つのテーブルから取得するために必要なので、私はSQLクエリを再加工する必要があるかもしれないと思う。ユーザー、ツイート、コメント。ありがとう:-) –
任意のアイデアをお願いしますか? –
複数のコメントがある場合にツイートが複数回表示されるようにしたい、またはしたくないと言っていますか?たとえば、ツイートに3つのコメントがある場合は、「TWEET、COMMENT1、COMMENT2、COMMENT3」または「TWEET、COMMENT1、TWEET、COMMENT2、TWEET、COMMENT3」にしますか? – jedwards