2012-03-28 136 views
0

我想为我的图像上传表单设置一个默认图像。在数据库中,我有“deafult_image”列,默认情况下它将设置为1,如果图像不是默认值,则设置为0。设置默认图像

我现在的问题是我可以将行更新为1以使图像成为默认图像,但如果另一图像存在并且默认为“1”,那么我将拥有2个默认图像。我如何更新我的默认图像,但也同时更改当前的默认图像为0,使其不再默认。

media_id列是唯一的。
link_id不是,可以为任何给定的link_id有多个图像。

这是我想出的更新行以使图像默认。

$media = $_GET['media_id']; 
$media_id = '1'; 
$sql = "select * FROM images where media_id = '$media'"; 
$result = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
mysql_query("UPDATE images SET default_image='$media_id' where media_id = '$media'") ; 
} 

我应该怎么做,以发现是否具有相同link_id另一个图像存在,它从1改为0,如果它是默认的。每个link_id总是有一个默认图像,所以我需要更新到当前的默认图像。

另外我知道我需要验证,这只是为了测试。

+0

use REPLACE i而不是更新 – 2012-03-28 04:23:54

回答

1

这将每幅图像重置为0

$sql = "UPDATE images SET default_image='0'"; 

这会将您的相关图像设置为默认值

$sql = "UPDATE images SET default_image='1' where media_id = '$media'"; 
+0

谢谢,效果很好。我正在把它变得更复杂,然后它就成为了。 – chris 2012-03-28 04:44:04

1

如果我理解正确。所以你只需要找到当前的默认值,将其设置为0,并将新的默认值设置为1. ,如果您担心会发生某种异常,并且您无法设置新的默认图像,则可以保存当前的默认值默认图像中的变量,设置新的默认图像,然后找到它的ID(保存在变量)以前的默认图像,并将其设置为0。

+0

是的,这是完全正确的。我会看看我能想出什么。 – chris 2012-03-28 04:30:09