0

データベースでフラグ値を 1 に更新しようとしていますが、機能せず、何が問題なのかわかりません。SQLAdministrator で同じ SQL ステートメントを実行すると、機能します。しかし、私のphpコードでは機能しません。

   <?php

$dc = $_POST['discount_code'];
$success = "success";
$fail = "fail";

$con = mysql_connect("localhost","user","password");
if (!$con)
{
die('Could not connect to the database! ' . mysql_error());
}

/*Accessing the database */
$db_selected = mysql_select_db("db", $con);
if (!$db_selected) {
    die ('Database error!' . mysql_error());
}
else{

    $data = mysql_query("SELECT * FROM discount_code WHERE disc_code = '$dc'") or die(mysql_error()); 
    $info = mysql_fetch_array($data); 

    if($info['flag'] == "0"){
        $res = mysql_query($con,"UPDATE discount_code SET flag=1 WHERE disc_code='$dc'");
    }
    if($info['flag'] === "1"){
        echo $fail;
    }
}

?>
<form action="" method="post" name="disc_code_form" >
<input type="text" name="discount_code" size="25"></input>
<input type="submit" name="submit" value="Submit">
</form>
4

1 に答える 1

0

これを試して:

if($info['flag'] == "0"){
    echo 'Updating..'; //so you know whether this condition met or not
    $res = mysql_query($con,"UPDATE discount_code SET flag=1 WHERE disc_code='$dc'");
}

// run select statement again to get the updated row
$data = mysql_query("SELECT * FROM discount_code WHERE disc_code = '$dc'") or die(mysql_error()); 
$info = mysql_fetch_array($data);

if($info['flag'] == "1"){
    echo $fail;
}
于 2013-09-13T09:54:19.590 に答える