Я хочу обновить только одну информацию из записи, используя php-форму, но дело в том, что когда я это делаю, остальные данные удаляются из записи. do i do:/здесь мои коды для обновления. Какая ошибка я делаю. Я очень смущен. Было бы очень полезно помочь.Обновление одной конкретной информации обновляет всю запись в MYSQL с помощью PHP
<?php
include('db.php');
if(isset($_POST['update']))
{
$hostname = "localhost";
$username = "root";
$password = "";
$databaseName = "winc sports";
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
$id = $_POST['id'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$age = $_POST['age'];
$country=$_POST['country'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$select = "SELECT * FROM studens WHERE id = '$id'";
$selected = mysqli_query($connect, $select);
$row = mysqli_fetch_assoc($selected);
if (empty($_POST['fname'])) {$fname = $row['fname'];} else {$fname = $_POST['fname'];}
if (empty($_POST['country']))
{
$country = $row['country'];
}
else {
$country = $_POST['country'];
}
if (empty($_POST['id'])) {
$id = $row['id'];
}
else {
$id = $_POST['id'];
}
if (empty($_POST['age'])) {$age = $row['age'];} else {$age = $_POST['age'];}
if (empty($_POST['phone'])) {$phone = $row['phone'];} else {$phone = $_POST['phone'];}
if (empty($_POST['email'])) {$email = $row['email'];} else {$email = $_POST['email'];}
$query = "UPDATE students SET Fname= '$fname', Lname = '$lname', Nationality = '$country', PhoneNumber = '$phone', Email= '$email', Age = '$age' WHERE Id = '$id'";
$result = mysqli_query($connect, $query);
var_dump($result);
if($result)
{
echo 'Data Updated';
}else
{
echo 'Data Not Updated';
}
mysqli_close($connect);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>PHP INSERT DATA USING PDO</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form action="updating.php" method="post">
<input type="text" name="id" placeholder="Enter new ID"><br><br>
<input type="text" name="fname" placeholder="Enter new First Name"><br><br>
<input type="text" name="lname" placeholder="Enter new Last Name"><br><br>
<input type="number" name="age" placeholder="Enter new age" min="13" max="90"><br><br>
<input type="text" name="country" placeholder="Enter new Nationality"><br><br>
<input type="number" name="phone" placeholder="Enter new Phone Number"><br><br>
<input type="text" name="email" placeholder="Enter new Email"><br><br>
<input type="submit" name="update" value="update">
</form>
</body>
</html>
Название вашей страницы неверно, 'PHP INSERT DATA USING PDO' вы используете' mysqli'. Вы также используете его опасным образом, используйте параметризованные запросы. Я бы построил запрос динамически и только обновлял столбцы, которые были изменены. – chris85
Вы должны «var_dump ($ row);», чтобы убедиться, что это так, как вы ожидаете. Основываясь на вашем заявлении 'UPDATE', я не удивлюсь, если ваши индексы результата будут' $ row ['Fname'] ',' $ row ['Lname'] 'и т. Д. –
' SELECT * FROM studens' также кажется так как это приведет к тому, что все сломается, так как ваш «ОБНОВЛЕНИЕ» - «ученикам». Используйте отчет об ошибках. Ввод в опечатку закрытия голосования .. – chris85