0

私が達成しようとしているのは、データベースからテーブルを編集するための複数のフォームを備えたバックエンドの管理パネルです。

ページ上で1つのSQLクエリを実行し、それを複数回参照したいと思います(おそらく、この同じクエリから3つの異なるループを作成し、複数回クエリを実行する必要はありません)。

可能であれば、クエリを最初のループの外で機能させる方法がわかりません。

私はすでにすべてのフォームで機能するSQLステートメントを持っています(基本的に私のフォームは同じ2つのテーブルを何度もクエリするだけなので)、しかしそれを2回以上使用することはできません...私はすでにそれを試しましたが、できます動作させません。

このクエリを1回実行し、ページで再度使用する必要があるときはいつでも参照してください。(おそらく、新しいwhileループを作成することによってですか?試してみましたが、機能しません。別の変数を使用しますか?機能しません。何ができるかを知りたくてたまらないです...)

この管理パネルは単一のPHPページであり、管理タスクに基づいてコンパートメントで分割されています。

いくつかのアイデアについては、それはそうです〜


// 写真をアップする //

(利用可能なオプションは...)
-写真のアップロード
-写真のタイトル
01の追加。カテゴリの選択|| SQLクエリ!LOOP-カテゴリドロップダウンリスト
02.サブカテゴリを選択|| SQLクエリ!LOOP-カテゴリ+サブカテゴリのチェックボックスリスト-
タグの
追加-写真の説明/解説 の追加

//カテゴリを管理します//

(使用可能なオプションは...)
-新しいカテゴリ
03を作成します。複数のカテゴリを削除します|| SQLクエリ!LOOP-カテゴリチェックボックスリスト+各
04のエントリ数。カテゴリの名前を変更|| SQLクエリ!LOOP-カテゴリリスト
05.サブカテゴリの編集|| SQLクエリ!LOOP-サブカテゴリの リスト


などなど...
ご覧のとおり、行われたすべてのクエリはカテゴリに関連しています。

私は実際にこれの作業バージョンを完成させましたが、1ページにSQLクエリが多すぎるもの(まったく同じテーブルに対して何度も何度も)、それは非現実的で無思慮に思えます。より良い方法が必要です...

一度だけ使用したいクエリ(および現在使用しているクエリ)は次のとおりです。

$sql = "SELECT category.id, category.name, COUNT(records.category_id) as number
FROM category
    LEFT OUTER
        JOIN records
        ON category.id = records.category_id
WHERE
    category.active = 1
GROUP
    BY category.id
ORDER
    BY category.name";
$result = mysql_query($sql);

while($rows = mysql_fetch_array($result)) {
    echo "SAMPLE LOOP" . $rows['id'] . $rows['name'] . $rows['number']; }

私が達成しようとしていることを達成する方法はありますか?
あなたの時間と知恵をありがとう!

4

1 に答える 1

1

結果を新しい配列に保存すると、必要に応じてそれを繰り返すことができます。

$sql = "SELECT category.id, category.name, COUNT(records.category_id) as number
FROM category
    LEFT OUTER
        JOIN records
        ON category.id = records.category_id
WHERE
    category.active = 1
GROUP
    BY category.id
ORDER
    BY category.name";
$result = mysql_query($sql);
$saved_results = array();
while($rows = mysql_fetch_array($result)) {
    echo "SAMPLE LOOP" . $rows['id'] . $rows['name'] . $rows['number']; 
    array_push($saved_results, $rows);
}

その後、いつでも:

foreach($saved_results as $res) {
  dostuff();
}
于 2012-05-16T17:55:28.927 に答える