1

このフォームが送信されたときにフィールド completed_status を 1 更新したい場合、0 のままです。クエリ $submission は、users テーブルの更新です。これは私が使用しているコードです:

$user_id = intval($_SESSION['user_id']);
if (isset($_POST['doPersonal'])) {

    if (empty($err)) {

        $Sex = mysql_real_escape_string($_POST['Sex']);
        $Second_Nationality = mysql_real_escape_string($_POST['Second_Nationality']);
        $Birth_Place = mysql_real_escape_string($_POST['Birth_Place']);
        $Birth_Country = mysql_real_escape_string($_POST['Birth_Country']);
        $children = mysql_real_escape_string($_POST['children']);

        $the_query =   "INSERT INTO personal (user_id, Sex, Second_Nationality, 
Birth_Place, Birth_Country, children)
VALUES ('$user_id', '$Sex', '$Second_Nationality','$Birth_Place', '$Birth_Country',
'$children')
ON DUPLICATE KEY UPDATE Sex=VALUES(Sex), Second_Nationality=VALUES(Second_Nationality),
Birth_Place=VALUES(Birth_Place) , children=VALUES(children)";



        // query is ok?
        if (mysql_query($the_query, $link) ){

            // redirect to user profile
            header('Location: myaccount.php?id=' . $user_id);

            $submission= "update users set completed_status=completed_status+1 where 
id='$_SESSION[user_id]'";
        }
    }
}

}

4

4 に答える 4

1

redirecting上記のコードから、あなたが前のページであることがわかりますupdate queryので、次のように変更してください。

if (mysql_query($the_query, $link) ){

           $submission= "update users set completed_status=completed_status+1 where 
id='$_SESSION[user_id]'";

           mysql_query($submission,$link);  // to execute the update query              

          // redirect to user profile
          header('Location: myaccount.php?id=' . $user_id);


}
于 2012-04-30T09:07:25.233 に答える
1

mysql_queryを呼び出していません:

$submission= "update users set completed_status=completed_status+1 where 
id='$_SESSION[user_id]'";
mysql_query($submission, $link);
于 2012-04-30T09:07:29.353 に答える
1

クエリを実行するのを忘れたと思います。

    if (mysql_query($the_query, $link)){

        $submission= "update users set completed_status=completed_status+1 where id='$_SESSION[user_id]'";
        mysql_query($submission, $link);

        // redirect to user profile
        header('Location: myaccount.php?id=' . $user_id);

    }

リダイレクトは何にも影響しないことに注意してください(他の人がここであなたに言ったとしても)。癖があるのでクエリの後に置いてみました。リダイレクト後のコードは引き続き実行され、ブラウザに出力が表示されません。リダイレクト後に実行を停止する場合は、を使用できますexit

于 2012-04-30T09:07:42.153 に答える
0

これを最後のifブロックとして試してください:

if (mysql_query($the_query, $link)) {
  $query = 'update users set completed_status=completed_status+1 where id = ' . $_SESSION[user_id];
  mysql_query($query, $link);

  // redirect to user profile
  header('Location: myaccount.php?id=' . $user_id);
}

$user_idただし、 と同様に使用しているのはかなりあいまいです$_SESSION['user_id']。これら 2 つの異なる user_id ですか?

于 2012-04-30T09:10:43.120 に答える