0

属性の値を更新しようとしています

$lid        = $_GET["id"];
$check_user = mysql_query("select employee.Emp_Name, leave.Leave_Type from `leave`, employee where leave.Leave_ID = $lid AND leave.Emp_ID = employee.Emp_ID ");
while($rows = mysql_fetch_assoc($check_user))
{
    echo "<td>: </td>";
    echo "<td>". $rows['Leave_Type']."</td>";
    echo "</tr>";
    echo "<td>: </td>";
    echo "<td>". $rows['Emp_Name']."</td>";
    echo "</tr>";
}

if (isset($_POST["submitbtn"]))
{
    if($rows['Leave_Type'] == 'Annual')
    {
        mysql_query("update `leave` set Status = 'Approved' where Leave_ID = $lid");        
    }
}

実行するとエラーは発生しませんが、データベースの属性の値は更新されません

4

1 に答える 1

0

変数をエスケープして SQL インジェクションを回避する

$lid        = $_GET["id"];
$check_user = mysql_query("select employee.Emp_Name, leave.Leave_Type from `leave`, employee where leave.Leave_ID = '" . $lid . "' AND leave.Emp_ID = employee.Emp_ID ");

私が理解しているように、IDと等しい場合は何かを選択するので、おそらくIDは一意であり、申し訳ありませんが必要な場合はwhileループは必要ありません:)

$rows = mysql_fetch_assoc($check_user));

    echo "<td>: </td>";
    echo "<td>". $rows['Leave_Type']."</td>";
    echo "</tr>";
    echo "<td>: </td>";
    echo "<td>". $rows['Emp_Name']."</td>";
    echo "</tr>";

おそらく投稿したい場合は、どこかにフォームがあり、更新を行ったことを願っています

if (isset($_POST["submitbtn"]))
{
    $Leave_Type = $_POST['Leave_Type'];

    if($Leave_Type == 'Annual')
    {
        mysql_query("update `leave` set Status = 'Approved' where Leave_ID = '" . $lid . "'");        
    }
}
于 2013-08-29T15:59:17.683 に答える