いくつかのことの 1 つを実行する次のコードのチャンクがあります。最も重要なのは、(条件に応じて) データベースの内容を取得するメイン ループをセットアップすることです。
これらの条件は次のとおりです: カテゴリを見ているかどうか - ID を見ているかどうか - どちらも見ていないか (フロントページ) - 管理者パスワード/ユーザー名の組み合わせが使用されているかどうか (削除/編集目的で)。
$replies は、(ID を見ている場合) 呼び出される ID の PARENT を持つすべてのエントリを取得します。$quickinfo は、メタ タグ (タイトル、キーワードなど) などの設定に使用されます。
私の唯一の(現在の)質問は次のとおりです。これは効率的ですか?そうでない場合は、なぜですか。
$selection = "ID,CONTENT,IP,SUBJECT,CATEGORY,APPROVED,DATE,PARENT,
PASSWORD,USERNAME,THANKS,DISAPPROVE,IPS,BUMPS";
$id = strip_tags($id);
$category = strip_tags($category);
$threads = mysql_query("SELECT COUNT(*) FROM $board") or die();
list($threadsTotal) = mysql_fetch_row($threads);
$threadsTotal_pages = ceil($threadsTotal / $POSTSPERPAGE);
$threadsPage = intval(@$_GET["page"]);
if (0 == $threadsPage)
{
$threadsPage = 1;
}
$threadsStart = $POSTSPERPAGE * ($threadsPage - 1);
$threadsMax = $POSTSPERPAGE;
if ($category > "" && $id == ""
&& $passw != <ONE MISTAKE HERE> $adminPass
&& $username != <ANOTHER MISTAKE HERE> $adminID)
{
$threads = mysql_query("SELECT $selection FROM $board WHERE PARENT=0
AND CATEGORY='$category'
ORDER BY ID DESC LIMIT $threadsStart, $threadsMax");
}
if ($category == "" && $id == "" &&
$passw !== <NOT EQAULS DOES NOT REQUIRE TWO EQUAL SIGNS AGAIN>
$adminPass && $username != <AND AGAIN> $adminID)
{
$threads = mysql_query("SELECT $selection FROM $board WHERE PARENT=0
ORDER BY ID DESC LIMIT $threadsStart, $threadsMax");
}
// PLEASE CHECK THE NOT EQUALS FUTHER ON....
if ($id > "" && $passw != $adminPass && $username != $adminID)
{
$threads = mysql_query("SELECT $selection FROM $board WHERE PARENT=0
AND ID=$id LIMIT 1");
$quickinfo = mysql_query("SELECT COUNT(*) FROM $board") or die();
$quickinfo = mysql_query("SELECT ID,CONTENT,SUBJECT,CATEGORY,USERNAME FROM
$board WHERE PARENT=0 AND ID=$id LIMIT 1");
$replies = mysql_query("SELECT COUNT(*) FROM $board") or die();
$replies = mysql_query("SELECT $selection FROM $board WHERE PARENT=$id
ORDER BY ID ASC");
while (list( $ID, $CONTENT, $SUBJECT, $CATEGORY, $USERNAME) =
mysql_fetch_row($quickinfo))
{
$threadID = $ID;
$threadContent = $CONTENT;
$threadSubject = $SUBJECT;
$threadCategory = $CATEGORY;
if ($USERNAME > "")
{
$threadAuthor = $USERNAME;
}
elseif ($USERNAME == "")
{
$threadAuthor = "Anonymous";
}
}
} // That is the end of your if
if ($passw == $adminPass && $username == $adminID)
{
$threads = mysql_query("SELECT $selection FROM $board ORDER
BY APPROVED DESC LIMIT $threadsStart,
$threadsMax");
}