0

I have virtually no programming experience and trying this first project, I am a bit stuck on how to update the database, so I click on edit and the correct record gets loaded into the edit screen update.php

When I click update, I get the message from updated.php saying that the database has been updated, but the database does not get updated, when I display the records they are the same as before the update, thanks in advance for all your help.

the following code:

<!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>

and here is the other file

<?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";
}

?>

3 Answers 3

2

Looks like you forget the double quotation mark and the full stop. You should write it as: '".$example."'

$sql = "UPDATE MY_ID SET FirstName='".$FirstName."',SurName='".$SurName."',Address='".$Address.:' WHERE ID='".$id."'";
Sign up to request clarification or add additional context in comments.

Comments

0

It is because your form method is POST, and you are trying to GET ID. Probably ID returns null. My suggestion is to put a hidden input in your form as with name="ID", then read it in your posted page as $_POST["ID"];

Comments

0

Yes, the answer is as Mansours said. You should not use single quota to your variable.

So, it's bad practice writing code something like this:

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

it should be

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

it would be clear, and also, when inserting or updating the record you should write as follow:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.