2014-03-06 38 views
-1

我在這裏有一個代碼,它會向數據庫發送一個數值。 PHP代碼:mysql更新在php上使用header()之前不起作用

<?php 
$ctr =1 
<form method = 'POST'> 
$radio =$ctr; 
<input type 'radio' name = '$radio[ctr]' /> 
$ctr++; 
<input type ='submit' name='submit'> 

</form> 

if(isset($_POST['submit'])) 
{ 
for($ctr=1; $ctr<$countme; $ctr++) 
{ 
score++; 
} 
enter code here 
$insert = mysql_query("UPDATE `tblname` SET `score` = '".$score."' where number = '$number'); 
if ($insert){ header('Location:somefile.php');} 
} 
?> 

現在的問題是,更新查詢似乎不工作時,header()工作,但它插入0值到數據庫。我試圖將header()更改爲echo語句,並使用正確的值更新數據庫。

您認爲是什麼問題?該代碼不會返回任何錯誤。提前致謝。

+0

這是**不** ** php的東西......檢查你的代碼......你缺少'<?php',你的'for'語句不好,你不執行你的(mysql)用'mysql_query()'查詢。使用一些'error_reporting(E^ALL)'來查看頁面上的所有錯誤.. –

+0

只有在調用標題之前頁面上有** NO OUTPUT **,'header'纔有效。 – hjpotter92

+0

啊,是的。對不起,我忘了它'$結果= mysql_query(「更新..」)'這是真的代碼..我現在就改變它。但它仍然不起作用,我不知道爲什麼 – Nixxhalle

回答

1

這不是修正,這是創建......您的<?PHP?>代碼應該在頁面的頂部,因爲如果頁面上已經打印了某些東西,header()將不會輸出任何內容。

此外,你錯過了你的mysql_connect(),你知道嗎?最後,這是不是安全的PHP,小心點。

<?php 
if(isset($_POST['submit'])) { 

    $score = 0; 
    foreach ($_POST['radio'] as $id => $value) { 
     $value == true and $score++; 
    } 

    // mysql_connect(); 
    $insert = mysql_query("UPDATE `tblname` SET `score` = '{$score}' where `number` = {$number}"); 

    if ($insert) { 
     header('Location:somefile.php'); 
    } 
} 
?> 


<form method="POST"> 
    <input type="radio" name="radio[]" /> 
    <input type="submit" name="submit" /> 
</form> 
+0

其實單選按鈕的值來自數據庫,這就是爲什麼它在php標籤內。就像我發佈的一樣。 – Nixxhalle

+0

關於'mysql_connect'它寫在一個單獨的文件上。順便說一下,''。。$ score。''和''{$ score}''之間有什麼區別。 – Nixxhalle

+0

none,你可以使用雙引號內的{$ my_var}解析php變量,它在調試時更容易閱讀。 'echo「var:$ myvar」;'很好,但'echo「var:{$ myvar}」;'更漂亮。最後你可以用這種方式解析數組:'echo「var:$ myvar [0]」'不正確,但是'echo「var:{$ myvar [0]}」'是。 –