在php上使用header()之前,mysql update无效

时间:2014-03-06 11:16:55

标签: php mysql

我这里有一个代码,它会向数据库发送一个数值。 PHP代码:

<?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语句,并使用正确的值更新数据库。

您认为这是什么问题?代码不会返回任何错误。提前谢谢。

1 个答案:

答案 0 :(得分: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>