我在 mysql 数据库中有列 a、b、c 和 d(为了简单起见)。
- a 列是用户 ID #(非唯一)
- b列是文件路径
- c列是“组ID”
- d 列是上传日期/时间
同时上传的文件具有相同的“组 ID”,分别存储在每个数据库条目中。
首先,我运行以下查询:
SELECT * FROM database WHERE a='$userid' ORDER BY d DESC
然后,我mysqli_fetch_assoc
在循环中利用该函数while
将数据输入到列表中(对于指定的 id,按上传日期排序,如上所示)。
我的问题是我需要在相同的提取输出中对具有相同“组 ID”的那些进行分组。这是否可以通过各种子查询来实现,或者我是否完全不充分地解决这个问题?如果有更好的 PDO 替代方案,我也很高兴看到这一点。
编辑:为了给这个问题更多的定义,请在下面找到代码:
因此,那些具有相同组 id 的条目应该放在同一个<li>
<body>
<ul><?=$output?></ul>
</body>
$userid = $_SESSION['id'];
$output='';
$q = mysqli_query("SELECT * FROM database WHERE a='$userid' ORDER BY d DESC");
while($row=mysqli_fetch_assoc($q)){
$output.=formatfxn($row['b'],$row['c'],$row['d']);
}
function formatfxn($filep,$groupid,$dt){
if(is_string($dt)){
$dt=strtotime($dt);
if(is_file($filep) === true){
$filel='<img class="postimg" src="'.$filep.'" />';
}
return '<li>'.$filel.'</li>';
}
}