私はこのPHPコードについて長い間頭を悩ましてきました。私はループをループして各結果が複数の不正な結果を返す
ような何かを達成しようとしています - >各ステータスを取得
- >ユーザの友人リスト
内の各ユーザを取得 - ユーザーのフレンドリスト
繰り返しである各ユーザから>ディスプレイのステータスをそれがなくなるまで。私はより多くの日のための解決策を探していて、それは本当に私を悩ましています。ここで私が試したコードは次のとおりです。
EDIT:要求された https://kjf-tech.net/files/schema.png
として掲載スキーマ<?php
$connect = new MySQLi($DBhost,$DBuser,$DBpass,$DBname);
$querya = "SELECT * FROM statuses ORDER BY `id` DESC";
$result = mysqli_query($connect, $querya);
$ALLDATA = array();
$DBcon2 = new MySQLi($DBhost,$DBuser,$DBpass,$DBname);
if ($DBcon2->connect_errno) {
die("ERROR : -> ".$DBcon2->connect_error);
}
while ($record = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
array_push($ALLDATA, $record);
$queryb = "SELECT * FROM friendslist WHERE idOfPerson1='".$record['idOfUser']."' OR idOfPerson2='".$record['idOfUser']."' OR idOfPerson2='".$userRow['user_id']."' OR idOfPerson1='".$userRow['user_id']."' ORDER BY `id` DESC";
$result2 = mysqli_query($connect, $queryb);
$ALLDATA2 = array();
while ($record2 = mysqli_fetch_array($result2, MYSQLI_ASSOC)) {
array_push($ALLDATA2, $record2);
if($record['idOfUser'] == $userRow['user_id']) {
echo '<div>You Posted on '.$record['whenPosted'].'<br />'.$record['content'].'</div>';
}
elseif($record2['idOfPerson1'] == $userRow['user_id']) {
$query2 = $DBcon2->query("SELECT * FROM tbl_users WHERE user_id='".$record2['idOfPerson2']."'");
$userRow2=$query2->fetch_array();
echo '<div>'.$userRow2['username'].' Posted on '.$record['whenPosted'].'<br />'.$record['content'].'</div>';
}
elseif($record2['idOfPerson2'] == $userRow['user_id']) {
$query2 = $DBcon2->query("SELECT * FROM tbl_users WHERE user_id='".$record2['idOfPerson1']."'");
$userRow2=$query2->fetch_array();
echo '<div>'.$userRow2['username'].' Posted on '.$record['whenPosted'].'<br />'.$record['content'].'</div>';
}
}
mysqli_free_result($result2);
}
$DBcon2->close();
mysqli_free_result($result);
?>
最初に行う必要があることは、データベーススキーマをさらに深めておくことです。正規化されていません。スキーマがよく考えられていれば、実装はずっと簡単です。テーブル間の関係を示す最小限のスキーマを投稿できますか –
私の投稿を更新しました。私はその最小限しかし、わからない:C – KJF
ああ、大丈夫です。私は提案をするつもりです。 –