2013-08-05 72 views
0

我对PHP这个查询:PHP MySQL的UPDATE和减去

mysql_query("UPDATE ead_modulos SET slides = slides - 1 WHERE id_modulo = '$id_modulo';"); 

每次我运行它,它减去2从幻灯片,所以如果我有2张幻灯片,我曾经运行此代码,它以0结束幻灯片。

我添加了一个输出到这个查询来检查它是否被执行了2次,它不是,代码运行一次并减去2,任何人都可以帮忙吗?

编辑:我有这个其他查询工作就好了,当添加幻灯片。

mysql_query("UPDATE ead_modulos SET slides = slides + 1 WHERE id_modulo = '$id_modulo'"); 

EDIT2:我已经试过只用DB连接的空白页上查询,它的工作就好了,所以问题是,代码运行2次,我绝对不知道为什么它是,当我添加一张幻灯片时,它工作正常,当我删除一张幻灯片它就像加载两次并执行代码两次。

+2

这个密码只能从任何给定行减1(最多)。如果它减去2,那么它会被调用两次,或者在执行第二次减法的表上有触发器,或者您误解了最终值。 –

回答

0

我同意你的代码必须运行两次。仔细检查它,并在此代码下面设置回显以发出消息,并查看它是否出现两次。

+0

我在这个查询后面添加了回显,它只回响一次:( – eduardofeio

0

是的,你的代码可能会运行两次。要测试,请将您的查询更改为+,并查看它是否会在您运行代码时添加两个。

的mysql_query( “UPDATE ead_modulos组幻灯片=幻灯片 - 1 WHERE id_modulo = '$ id_modulo';”);

的mysql_query( “UPDATE ead_modulos组幻灯片=幻灯片+ 1 WHERE id_modulo = '$ id_modulo';”);

只是用于测试..

也试试这个:

mysql_query("UPDATE ead_modulos SET slides = slides - 1 WHERE id_modulo = '$id_modulo';"); 
exit(); 
+0

是的,如果使用加号加2,我还添加了回显以查看它是否显示了两次,但不是,只显示回显文本显示一次... – eduardofeio

+0

你可以编辑你的文章,让我们看看你是如何运行查询与PHP代码? –

+0

我已经尝试了一些不同的东西,我得到了这个查询,并将其粘贴在index.php上,右上方,所以它会运行在每一个页面打开测试目的...问题依然存在,如果我加载任何页面,它减去2,如果我评论这一行,什么也没有发生! – eduardofeio