I am trying to first, get an ID to query a database and print the results in a table(this part works). I want to then take the id that was given by the user and use it to update the information in the database using PHP. I want to use the input on the second form as the values to update the database with.
The table to alter is customers
and it has the fields ID, NAME, ADDRESS. I do not want the user to be able to change the ID.
Form1:
<form method="post" action="">
<p style="margin-top: 70px;">Please type the ID of the person you wish to add to change their data</p>
<p style="margin-bottom: 0px;">ID</p>
<input style="color:black" type="text" name="id" placeholder="10001">
<input style="color:lightblue;background-color: rgb(80,80,80);margin-top: 7px; " type="submit" value="Submit">
</form>
Form2:
<form method="post" action="">
<p>New Information for Customer with ID entered above</p>
<input style='color:black;' type='text' name='newName' placeholder='Name Change'>
<input style="color:black;" type="text" name="newAddress" placeholder="New Address">
<input style="color:lightblue;background-color: rgb(80,80,80);margin-top: 7px; " type="submit" name="submitForm2" value="Submit">
</form>
Here is my current php as requested but it does not work and the $_POST that checks if the values are set returns false.
<?php
session_start();
if (isset($_POST["id"])){
$servername = 'localhost';
$user = 'root';
$pass = '';
$db = 'the_sports_store';
$conn = new mysqli($servername,$user, $pass, $db);
// Check connection
if ($conn->connect_error) {
echo '<script language="javascript">';
echo 'alert("DB Connection Failed:")';
echo '</script>';
die("" . $conn->connect_error);
}
$sessionID = $_SESSION["ID"];
$newName = $_SESSION["newName"];
$newAddress = $_SESSION["newAddress"];
var_dump($newName);
$sql = "SELECT * FROM `customers` WHERE ID='$sessionID';";
//display the current record, allow user input to alter it, then display new data
if ($conn->query($sql) == TRUE) {
echo"<div class='col-10'>";
echo"<table>";
echo"<tr>
<td align='justify'><b>ID</b></td>
<td align='justify'><b>NAME</b></td>
<td align='justify'><b>ADDRESS</b></td>
</tr>";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
echo "<tr><td style='padding: 10px;'>{$row['ID']}</td><td>{$row['NAME']}</td><td>{$row['ADDRESS']}</td></tr>";
echo "</table>";
echo "</div>";
if(!empty($_POST["newName"]) && !empty($_POST["newAddress"])){
echo '<script language="javascript">';
echo 'alert(',$sessionID,');';
echo '</script>';
$newName = $_POST["newName"];
$newAddress = $_POST["newAddress"];
$sqlChange = "UPDATE `customers`
SET `NAME` = '$newName', `ADDRESS` = '$newAddress'
WHERE `ID` = '$sessionID';";
if ($conn->query($sqlChange) === TRUE) {
echo '<script language="javascript">';
echo 'alert("Update Successful.")';
echo '</script>';
} else {
echo '<script language="javascript">';
echo 'alert("Error. Update Unsucessful.")';
echo '</script>';
}
}else if(!empty($_POST["newName"])){
$newName = $_POST["newName"];
$sqlChange = "UPDATE `customers` SET `NAME` = '$newName' WHERE `ID` = '$sessionID'";
echo '<script language="javascript">';
echo 'alert(',$newName,');';
echo '</script>';
if ($conn->query($sqlChange) === TRUE) {
echo '<script language="javascript">';
echo 'alert("Update Successful.")';
echo '</script>';
} else {
echo '<script language="javascript">';
echo 'alert("Error. Update Unsucessful.")';
echo '</script>';
}
}else if(!empty($_POST["newAddress"])){
$newName = $_POST["newAddress"];
$sqlChange = "UPDATE `customers` SET `ADDRESS` = '$newAddress' WHERE `ID` = '$sessionID'";
echo '<script language="javascript">';
echo 'alert(',$sessionID,');';
echo '</script>';
if ($conn->query($sqlChange) === TRUE) {
echo '<script language="javascript">';
echo 'alert("Update Successful.")';
echo '</script>';
} else {
echo '<script language="javascript">';
echo 'alert("Error. Update Unsucessful.")';
echo '</script>';
}
} else{
echo '<script language="javascript">';
echo 'alert(',$sessionID,');';
echo '</script>';
}
}
$conn->close();
}
?>
Your problem is that your PHP code will only execute if the id is set. So the code will never execute when you post the second form.
Move this if (!empty($_POST["newName"]) && !empty($_POST["newAddress"]))
and all elseif/else below outside of your initial if.
Also, I feel obligated to inform you about SQL Injection and how to avoid it: How can I prevent SQL injection in PHP?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With