I would like to update a record in the database but only one at a time. Currently, when i click submit all other values is null and will be deleted from the database. How do i make it so the other values are maintained?
The only work around i can think of is to make each field a separate process in itself but that seems unefficient
This is the processing file:
<?php
session_start();
$host="localhost";
$user="root";
$password="";
$db="portal";
$data=mysqli_connect($host,$user,$password,$db);
$currentuser = $_SESSION["username"];
if($data===false)
{
die("connection error");
}
if(isset($_POST['submit']))
{
$username=$_POST['username'];
$password=$_POST['password'];
$name=$_POST['name'];
$phonenum=$_POST['phonenum'];
$address=$_POST['address'];
$email=$_POST['email'];
$sql="UPDATE user SET username='$username', password='$password', name='$name', phonenum='$phonenum', address='$address', email='$email' WHERE username = '$currentuser'";
$result=mysqli_query($data,$sql);
}
?>
<!doctype html>
<html>
<head>
<title>User Updated!</title>
<!--Icons-->
<script src="https://kit.fontawesome.com/5669020dd7.js" crossorigin="anonymous"></script>
<!--Font-->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600&display=swap" rel="stylesheet">
<!--For navbar-->
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<style>
body {
background-image:url('bg5.png');
background-color:#9ec6e4;
background-size: 100% auto;
font-family: 'Source Sans Pro', sans-serif;
}
.main {
margin-left: 220px; /* Same as the width of the sidenav */
padding: 0px 10px;
}
.bgbox {
position: absolute;
z-index: -1;
}
.container {
border-radius: 5px;
background-color: #fffdd0;
padding: 20px;
}
h1 {
font-family: 'Source Sans Pro', sans-serif;
font-size: 50px;
}
.padding {
margin-left: 50px;
}
/*button*/
.button {
background-color: #d1b7a0;
border-radius: 8px;
font-family: 'Source Sans Pro', sans-serif;
color: black;
text-align: center;
text-decoration: none;
display: inline-block;
padding: 5px 20px;
margin: 8px 0;
border: none;
border-radius: 8px;
cursor: pointer;
}
.button:hover {
background-color: #5f4f47;
color: #d1b7a0;
}
/*button*/
</style>
</head>
<body>
<!--navbar-->
<div id="usernav">
</div>
<script>
$(function(){
$("#usernav").load("usernav.html");
});
</script>
<!--navbar-->
<div class="main">
<br>
<a>Welcome, </a><?php echo $_SESSION["username"] ?><a>!</a>
</div>
<br>
<div class="bgbox">
<img src="box.png" style="opacity:0.6; width: 100%;">
</div>
<div class="main">
<br><br>
<div class="container">
<h1>User Updated!</h1>
<div class="padding">
<?php echo "<b>Username:</b> $username<br/><br/>";
echo "<b>Name:</b> $name<br/><br/>";
echo "<b>Phone Number:</b> $phonenum<br/><br/>";
echo "<b>Office Address:</b> $address<br/><br/>";
echo "<b>Email:</b> $email";?>
</div>
</div>
</div>
</body>
</html>
This is my html:
<?php
session_start();
$host="localhost";
$user="root";
$password="";
$db="portal";
$data=mysqli_connect($host,$user,$password,$db);
$currentuser = $_SESSION["username"];
if($data===false)
{
die("connection error");
}
if(isset($_POST['submit']))
{
$username=$_POST['username'];
$password=$_POST['password'];
$name=$_POST['name'];
$phonenum=$_POST['phonenum'];
$address=$_POST['address'];
$email=$_POST['email'];
$sql="UPDATE user SET username='$username', password='$password', name='$name', phonenum='$phonenum', address='$address', email='$email' WHERE username = '$currentuser'";
$result=mysqli_query($data,$sql);
}
?>
<!doctype html>
<html>
<head>
<title>User Updated!</title>
<!--Icons-->
<script src="https://kit.fontawesome.com/5669020dd7.js" crossorigin="anonymous"></script>
<!--Font-->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600&display=swap" rel="stylesheet">
<!--For navbar-->
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<style>
body {
background-image:url('bg5.png');
background-color:#9ec6e4;
background-size: 100% auto;
font-family: 'Source Sans Pro', sans-serif;
}
.main {
margin-left: 220px; /* Same as the width of the sidenav */
padding: 0px 10px;
}
.bgbox {
position: absolute;
z-index: -1;
}
.container {
border-radius: 5px;
background-color: #fffdd0;
padding: 20px;
}
h1 {
font-family: 'Source Sans Pro', sans-serif;
font-size: 50px;
}
.padding {
margin-left: 50px;
}
/*button*/
.button {
background-color: #d1b7a0;
border-radius: 8px;
font-family: 'Source Sans Pro', sans-serif;
color: black;
text-align: center;
text-decoration: none;
display: inline-block;
padding: 5px 20px;
margin: 8px 0;
border: none;
border-radius: 8px;
cursor: pointer;
}
.button:hover {
background-color: #5f4f47;
color: #d1b7a0;
}
/*button*/
</style>
</head>
<body>
<!--navbar-->
<div id="usernav">
</div>
<script>
$(function(){
$("#usernav").load("usernav.html");
});
</script>
<!--navbar-->
<div class="main">
<br>
<a>Welcome, </a><?php echo $_SESSION["username"] ?><a>!</a>
</div>
<br>
<div class="bgbox">
<img src="box.png" style="opacity:0.6; width: 100%;">
</div>
<div class="main">
<br><br>
<div class="container">
<h1>User Updated!</h1>
<div class="padding">
<?php echo "<b>Username:</b> $username<br/><br/>";
echo "<b>Name:</b> $name<br/><br/>";
echo "<b>Phone Number:</b> $phonenum<br/><br/>";
echo "<b>Office Address:</b> $address<br/><br/>";
echo "<b>Email:</b> $email";?>
</div>
</div>
</div>
</body>
</html>