我试图从Mysql_query中排除一个'ID',但它仍然返回提到的ID.此ID为"21",但查询返回"21",这不是我想要的.我在Mysql中拼错了吗?
("SELECT * FROM `gallery` WHERE `gallery_id` NOT IN ('$notgallery')") or die (mysql_error());
Run Code Online (Sandbox Code Playgroud)
function not_gallery($pic){
$pic = $_GET['id'];
$id = explode(".", $pic);
$notgallery = $id;
$notg = mysql_query("SELECT * FROM `gallery` WHERE `gallery_id` NOT IN ('$notgallery')") or die (mysql_error());
while($not_row = mysql_fetch_assoc($notg)){
$notgimage[] = array(
'id' => $not_row['gallery_id'],
'user' => $not_row['user_id'],
'name' => $not_row['name'],
'timestamp' => $not_row['timestamp'],
'ext' => $not_row['ext'],
'caption' => $not_row['caption'],
);
}
print_r($notgimage);
}
Run Code Online (Sandbox Code Playgroud)
我print_r了查询,它仍然返回'21'我已经排除/或我认为我做了
Array ( [0] => Array ( [id] => 21 [user] => 18 [name] => NotDeojeff [timestamp] => 1367219713 [ext] => jpg [caption] => asd ) [1] => Array ( [id] => 22 [user] => 18 [name] => NotDeojeff [timestamp] => 1367225648 [ext] => jpg [caption] => Ogre magi )
Run Code Online (Sandbox Code Playgroud)
有几个问题.看看这里:
"SELECT * FROM `gallery` WHERE `gallery_id` NOT IN ('$notgallery')"
Run Code Online (Sandbox Code Playgroud)
$notgallery目前是要检查的ID数组.您需要将它们连接在一起implode,如下所示:
$notgallery = implode(', ', $id);
Run Code Online (Sandbox Code Playgroud)
此外,您已将gallery_idNOT IN值包装在引号中.所以事实上你会得到类似的东西:
"SELECT * FROM `gallery` WHERE `gallery_id` NOT IN ('21, 13')"
Run Code Online (Sandbox Code Playgroud)
这就像说WHERE gallery_id != '21, 13'.假设您使用INTs作为id列,则需要删除单引号$notgallery.如果您使用的是字符串,则可以更改内爆:
$notgallery = implode("', '", $id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15760 次 |
| 最近记录: |