私は自分のTwitterプロジェクトのソーシャルメディアを開発しています。 PHPでコードを作成し、MYSQLテーブルにユーザー、投稿、フォロワーを格納します(私の変数名はスウェーデン語なので、anvandare、inlagg、foljingarと呼ばれます)ifステートメントでin_array()を使用すると、「実行時間が30秒を超えました」というループでfalseが返されます
だから、私はそれらの投稿を表示したい以下。私が従うユーザーのすべてのユーザーIDを取得し、配列に格納することに決めました。
$sqlfoljer="select foljarid, foljdid from foljningar where foljarid =$anvandarID";
$stmt = $conn->prepare($sqlfoljer);
$stmt->execute();
$row = $stmt->fetch();
if (!$row)
{
echo "You are not following anyone.";
die();
}
$foljer = array();
while ($row != null)
{
array_push($foljer, $row['foljdid']);
$row = $stmt->fetch();
}
私は1つのクエリ内のすべての投稿をフェッチし、それらを書いた人は、私が
$sql = "select id, datumskapat, text, bild, anvandarID, namnAnvandare from inlagg order by datumskapat desc";
$stmt = $conn->prepare($sql);
$stmt->execute();
$row = $stmt->fetch();
if (!$row)
{
exit();
}
while ($row != null)
{
$anvandarID = $row['anvandarID'];
$inlaggsid = $row['id'];
if(in_array($anvandarID, $foljer))
{
$sqlgillar = "select count(*) as antalgillar from gillningar where inlaggsid = :inlaggsid";
$params2 = array(':inlaggsid'=>$row['id']);
$stmt2 = $conn->prepare($sqlgillar);
$stmt2->execute($params2);
$row = $stmt2->fetch();
if ($bild != null)
{
//Lägg tll bild
echo "<img src=\"visabild.php?id=$inlaggsid\" alt=\"Bild\" />";
}
}
$row = $stmt->fetch();
}
else
{
echo"You dont follow this person";
}
}
よしに従う人々の私の配列である場合、私がチェックするので、問題はこれがないということです作業。ブラウザでページを入力すると、フリーズしているように感じられますが、verryの時間がかかり、最大時間の致命的なエラーが表示されます。
投稿が正しく読み込まれません。それは一人の人からの投稿です(配列内の最初のpersonID)。私はin_arrayのelse文を追加しました.30秒の休憩まで無限に何度も "あなたはこの人に従ってはいけません"とエコーします。
私が間違っていることを誰かが見つけることができますか?
たくさんの質問にirrelleventようです。 stackoverflowで常にあなたの質問を*簡単に*お願いします! –