更新数据库时,我的查询不起作用

时间:2013-06-26 08:25:48

标签: php mysql database forms

我的表格如下:

<form action="campionat.php?competitii='.$idcompetitie.'">
    <input type="submit" name="upgrade" value="inainte" />
</form>

campionat.php

    if($_POST['upgrade']=="inainte")
    {    
        $lvlupstadion   = $levelstadio+1;
        $cost               = 10000000*$lvlupstadion;
        $bugetnou       = $buget - $cost;

        $q = mysql_query("UPDATE echipa SET levelstadion='".$lvlupstadion."' , buget='".$bugetnou."' WHERE (`echipa`='".$echipa."') AND (`user`='".$id."') AND (`competitie`='".$competitie."')") ;
        if (!$q)
        {
            echo  mysql_error($q);
        }
        echo $lvlupstadion.$bugetnou.$echipa.$id.$competitie;
    }

为什么我的数据库没有更改,我的脚本没有提醒我错误?

5 个答案:

答案 0 :(得分:2)

<form>标记的默认方法是GET。

由于您的表单没有指定方法,因此它会发送一个get。在这种情况下,$_POST['upgrade']不可用。

如果你改变了

<form action="campionat.php?competitii='.$idcompetitie.'">
    <input type="submit" name="upgrade" value="inainte" />
</form>

<form method="post" action="campionat.php?competitii='.$idcompetitie.'">
    <input type="submit" name="upgrade" value="inainte" />
</form>

它应该有用。

请参阅此问题:What is the default form HTTP method?

答案 1 :(得分:1)

您的表单没有method,因此默认为GET。这是一个问题,因为您正在尝试访问永远不会设置的$_POST['upgrade']

将方法设置为post

<form method="post" ... >

来自W3C docs

  

方式

     

可能的(不区分大小写)值是“get”(默认值)和“post”

答案 2 :(得分:1)

你的表格遗失了。你必须在$ _GET和$ _POST之间做出选择。 +你用$ q做什么?

答案 3 :(得分:0)

如果

(`user`='".$id."')

是一个ID(int),你不需要简单的引用。它可能对你有帮助

答案 4 :(得分:0)

将值存储在隐藏字段中,然后将其发送到另一个页面

<form action="campionat.php" method="post">
<input type="hidden" name="competitii" value="<?php echo $idcompetitie; ?>">
<input type="submit" name="upgrade" value="inainte" />
</form>

您的重定向不是从表单发布方法发送值。