在一个页面上引用一个 SQL 查询 3 次,并在该查询中创建 3 个单独的循环


Refer to one single SQL query 3 times on a page, and create 3 separate loops off that query?

我要完成的是一个后端管理面板,具有多个表单来编辑数据库中的表。

我想在页面上运行一个SQL查询,并多次引用它(可能从同一个查询中创建3个不同的循环,而不必多次查询它(。

如果可能的话,我无法弄清楚如何使查询在其初始循环之外工作

我已经有了适用于所有表单的 SQL 语句(因为基本上我的表单只是一遍又一遍地查询相同的 2 个表(,但我不能多次使用它......我已经尝试过了,但无法让它工作。

我只想运行一次此查询,每当我需要在页面上再次使用它时,只需重新引用它。 (也许通过创建一个新的 while 循环?试过了,没用。使用不同的变量?不行。我很想知道有什么作用...

此管理面板是一个 PHP 页面,根据管理任务按区间划分。

对于一些想法,是这样的~


上传照片//

(可用的选项是...
- 上传照片
- 添加照片标题
01. 选择类别 ||SQL查询!循环 - 类别
下拉列表02. 选择子类别 ||SQL查询!循环 - 类别 + 子类别
的复选框列表- 添加标签
- 添加照片描述/评论

管理类别//

(可用的选项是...
- 创建一个新类别
03. 删除多个类别 ||SQL查询!循环 - 类别的复选框列表 + 每个
类别的 # 个条目04. 重命名类别 ||SQL查询!循环 - 类别
列表05. 编辑子类别 ||SQL查询!循环 - 子类别列表


等等

等等...
如您所见,所做的所有查询都与类别相关。

我实际上已经完成了一个工作版本,但是在一个页面上有太多的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']; }

有没有办法实现我想要实现的目标?
感谢您的时间和智慧!

将结果保存到新数组,然后在需要时可以迭代该数组:

$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();
}