2013-06-26 121 views
-1

當我查詢不工作,我有這樣一個形式如下:更新數據庫

<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; 
    } 

爲什麼我的數據庫不會改變,我的腳本不警告我關於錯誤?

+0

因爲您的$ _POST ['upgrade']沒有從窗體動作 – Afsar

+0

中獲取值,所以添加像這樣的'mysql_query()或die(mysql_error())'來跟蹤錯誤。 – ejo

+2

mysql_ *被刪除,使用mysqli或PDO。 – karmafunk

回答

0

如果

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

是一個ID(INT)你不需要簡單的報價。它可以幫助你

+1

-1將不會有任何區別(請不要提交猜測作爲答案) – AD7six

+0

@ AD7ixix建議將足夠好,並有一個答案要麼編輯它或發佈它... –

+0

當張貼它,還沒有anwser,所以請停止拖動。我只是試圖幫助,而你只是無緣我。 – marshallino16

0

存儲該值的隱藏字段,然後將其發送到另一個頁面

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

您重定向無法發送從形式交法的價值。

+1

將id從url(表單動作)移動到隱藏字段不能解決原始錯誤(通過此答案更正,但未提及)。 – AD7six

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

你的形式不具有method,因此它會默認爲GET。這是一個問題,因爲您正嘗試訪問永遠不會設置的$_POST['upgrade']

將方法設置爲post

<form method="post" ... > 

W3C docs

方法

可能(不區分大小寫)的值是 「獲取」(默認)和 「後」

+0

對不起,我的錯是

\t \t \t \t \t \t \t \t \t \t \t

1

您的形式缺少的東西。您必須在$ _GET和$ _POST之間進行選擇。 +你在用$ q做什麼?