0

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

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

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

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

我只想运行这个查询一次,并且只要我需要在页面上再次使用它就可以简单地引用它。(也许通过创建一个新的while循环?试过了,不起作用。使用不同的变量?不起作用。我很想知道什么是......)

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

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


// 上传照片 //

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

// 管理类别 //

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


依此类推……
如您所见,所做的所有查询都与类别相关。

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