gpt4 book ai didi

PHP,在 SQL 中循环查询结果

转载 作者:行者123 更新时间:2023-11-29 11:51:54 26 4
gpt4 key购买 nike

我目前在尝试为我想要的结果创建循环时遇到困难。

我目前正在创建一个学生记录卡,其中存储了不同学生(假学生)的大量数据。

我创建了一个查询,它返回我需要的相关数据(参见图一,phpmyadmin)

SELECT mods.mid, mtitle, credits, enrl.ayr 
FROM stud, smod, mods, enrl
WHERE stud.sid = '154279' AND stud.sid = smod.sid
AND smod.mid = mods.mid AND stud.sid = enrl.sid
ORDER BY `enrl`.`ayr` DESC

从结果中可以看出,有以下属性:中
标题
学分
艾尔

我已按 ayr 降序排列。我正在尝试创建一个循环,该循环将贯穿该查询的返回并打印出每一行,直到当前年份结束。几乎将同一年份的所有行分组,例如将“2001/02”放入子表中,然后我可以命名并打印该子表。

正如您从学生记录页面的第二张图片中看到的,我需要能够打印这一年的所有记录,然后为下一个现有年份创建一个新标题并打印所有包含该行的行。

{编辑}PHP 代码:

$query = "SELECT mods.mid, mtitle, credits, enrl.ayr 
FROM stud, smod, mods, enrl
WHERE stud.sid = '154279' AND stud.sid = smod.sid AND smod.mid = mods.mid AND stud.sid = enrl.sid
ORDER BY enrl.ayr DESC
";


$scap = '';
$curYear = $row['ayr'];
if($result = $link->query($query)) {
while ($row = $result->fetch_assoc() && $row['ayr'] == $curYear) {
$scap .= "<table id=\"test\" style=\"width:100%\">
<tr>
<td> " . $row['mid'] . " </td> <td> " . $row['mtitle'] . "</td> <td> " . $row['credits'] . " <td> " . $row['ayr'] . "</td>
</tr>
</table>";
}$result->free();
}

提前致谢。

Picture 1 Picture 2

最佳答案

假设您 promise 对整个页面进行最多一个查询。正如我在评论中所说

I would have a variable, call it $curYear. Start it out as some junk string. In your loop, if the cur year thing is different than $curYear, create a new segment in your output but regardless update $curYear variable

这并不是为了干扰您现有的源代码(那么多)。它只是一个哨兵,提醒您年份变化(无论年份/术语)。

所以它以一些垃圾值开始,例如“797fsdf*”

现在,请记住,您拥有来自该结果集的所有年份的所有年份。

按照我在上面粉红色 block 中所说的操作,将变量 $curYear

进行比较
$row['ayr']

当这两个值不同时,就可以进行任何您想要的 HTML 处理(创建一个新的 html 表、一个新的 div,谁在乎)。我们称之为分离事物。

无论如何,输出行后,请确保已将 $curYear 设置为 $row['ayr']。为什么这很重要?因为下一个循环您想知道是否需要执行分离操作。

棘手的部分是,如果您正在制作 html 表格,如果您不是第一年,则必须关闭上一个表格(前一年)

关于PHP,在 SQL 中循环查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33927167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com