0

私は事実上プログラミングの経験がなく、この最初のプロジェクトを試してみました。データベースを更新する方法に少し行き詰まっているので、[編集] をクリックすると、正しいレコードが編集画面 update.php に読み込まれます。

更新をクリックすると、updated.php からデータベースが更新されたというメッセージが表示されますが、データベースは更新されません。レコードを表示すると、更新前と同じです。よろしくお願いします。 .

次のコード:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Form Edit Data</title>
</head>

<body>
    <table border=1>
    <tr>
        <td align=center>Form Edit Employees Data</td>
    </tr>
    <tr>
    <td>
        <table>
        <?
        $user_name = "";
        $password = "";
        $database = "";
        $server = "localhost";

        mysql_connect($server, $user_name, $password);
        $db_found = mysql_select_db($database);
        $id = $_GET['id'];
        $order = "SELECT * FROM MY_ID where ID = ' " .$id . " ' ";
        $result = mysql_query($order);
        $row = mysql_fetch_array($result);
        ?>
        <form method="post" action="edit_data.php"?id=<?= $id ?>>
            <input type="text" name="id" value="<? echo "$row[ID]"?>">
            <tr>        
                <td>First Name</td>
                <td>
                    <input type="text" name="FirsName" size="20" value="<? echo "$row[FirstName]"?>">
                </td>
            </tr>
            <tr>
                <td>Sur Name</td>
                <td>
                    <input type="text" name="SurName" size="40" value="<? echo "$row[SurName]"?>">
                </td>
            </tr>
            <tr>
                <td>Address</td>
                <td>
                    <input type="text" name="Address" size="40" value="<? echo "$row[Address]"?>">
                </td>
            </tr>
            <tr>
                <td align="right">
                    <input type="submit" name="submit" value="submit">
                </td>
            </tr>
        </form>
        </table>

    </td>
    </tr>
    </table>
</body>
</html>

ここに他のファイルがあります

<?php
$user_name = "";
$password = "";
$database = "";
$server = "";

mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database);

$id = $_REQUEST['ID'];
$FirstName = trim(mysql_real_escape_string($_POST["FirstName"]));
$SurName = trim(mysql_real_escape_string($_POST["SurName"]));
$Address = trim(mysql_real_escape_string($_POST["Address"]));

$sql = "UPDATE MY_ID SET FirstName='$FirstName',SurName='$SurName',Address='$Address' WHERE ID='$id'";
$result=mysql_query($sql);


if ($result){
    echo "Successful";
    echo "<BR>";
    echo "<a href='edit.php'>View result</a>";
}
else {
    echo "ERROR";
}

?>
4

3 に答える 3

2

二重引用符とピリオドを忘れているようです。'".$example."' のように記述してください。

$sql = "UPDATE MY_ID SET FirstName='".$FirstName."',SurName='".$SurName."',Address='".$Address.:' WHERE ID='".$id."'";
于 2013-03-28T00:49:45.863 に答える
0

はい、答えはマンスールが言ったとおりです。変数に単一クォータを使用しないでください。

したがって、次のようなコードを書くのは悪い習慣です。

<input type="text" value="<?php echo "$row[name]"; ?>">

そのはず

<input type="text" value="<?php echo $row['name']; ?>">

また、レコードを挿入または更新するときは、次のように記述する必要があります。

$sql = "UPDATE MY_ID SET FirstName='" . $FirstName . "',
                         SurName='" . $SurName . "',
                         Address='" . $Address . "' 
         WHERE ID='" . $id . "'";
mysql_query($sql);
于 2013-03-28T01:16:31.567 に答える
0

これは、フォーム メソッドがであり、 IDを取得POSTしようとしているためです。GETおそらく ID は null を返します。私の提案は、 のように非表示の入力をフォームに配置しname="ID"、投稿されたページで次のように読み取ることです。$_POST["ID"];

于 2013-03-28T00:54:17.287 に答える