好的,我正在尝试清理脚本的混乱情况。我对SQL查询还是比较陌生的。所以这是我到目前为止的查询。
$query = "SELECT id FROM ow_photo_album WHERE userId = '$id' ORDER by ID";
$result = $con1->query($query);
while($row = $result->fetch_row()) {
$rows[]=$row;
$aid = $row[0];
$queryb = "SELECT id FROM ow_protectedphotos_passwords WHERE albumId = '$aid' AND privacy = 'password' ORDER by ID LIMIT 1";
$checkmoderated = $con1->query($queryb);
$row3 = $checkmoderated->fetch_row();
$checked = $row3[0];
if($checked > 0) {
$queryP = "SELECT id, hash FROM ow_photo WHERE albumId = '$aid' ORDER by ID";
$resultP = $con1->query($queryP);
while($rowP = $resultP->fetch_row()) {
$rowsP[]=$rowP;
$pid = $rowP[0];
$hash = $rowP[1];
所以这可以满足我的需要。它会执行第一个查询并获取用户相册ID,然后使用第二个查询来查询这些ID,以查看相册是否为私人相册。最后,它接着获取私人相册(相册ID),并找到这些相册的所有照片。
然后,我需要放入照片ID和哈希列。
这是我到目前为止所拥有的。
$query = "SELECT t.*, tt.*, tr.*
FROM ow_photo_album AS t
INNER JOIN ow_protectedphotos_passwords AS tt
ON t.id = tt.albumId
INNER JOIN ow_photo AS tr
ON tr.albumId = tt.albumId
WHERE t.userId = '$id'
ORDER BY tr.id ASC";
但是问题是当运行将多个表连接在一起的东西时,如何找到正确的行?我不确定是否可以使用fetch assoc,因为存在3个表,其中3列名为'id'
答案 0 :(得分:1)
这是基本的sql,因此它可以在任何RDBMS上使用,我在这里使用JOIN是因为我假设您只想要属于相册的照片,并且因为widechar
列需要设置为'password'< / p>
privacy