我试图在我的数据库中检索用户的结果,然后如果我的复选框被选中以仅检索有照片来显示这些结果的用户,但我似乎无法弄清楚如何遍历这些结果或者我是否在正确的环境中这样做。 `
$photos = $_POST['pcbox'];
$basicsql = "SELECT * FROM users";
$basicsql .= "WHERE status > '1'";
if($photos=='1'){
$sql = mysql_query("SELECT user_id FROM pictures GROUP BY user_id");
while($row2 = mysql_fetch_assoc($sql))
$options[] = " AND (users.user_id = '$row2[user_id]')";
foreach($options as $key => $str){
$basicsql .= $str;
}
}
$basicsql .= " ORDER BY users.last_login DESC";
$pagesql = mysql_query($basicsql);
在复选框被选中之前一切正常
最佳答案
您不能对嵌套循环使用相同的数据库句柄。您需要为每个显式设置数据库句柄。
但是,您可以在一个 sql 查询中完成。
观察:
select * from users u inner join pictures p on u.id=p.user_id
其中 status > 1
INNER JOIN 只会为您提供在图片表中有行的用户。
这将为您提供只有图片的用户。
编辑
这将给出 pitcures 的数量,并且只有 1 个用户行。
Select name,email,address,status,count(*) as num_pics from users u inner join pictures p on u.id=p.user_id 按名称、电子邮件、地址、状态分组
其中 status > 1
关于带有循环的php mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5886518/