ArBitr_exe
@ArBitr_exe
Начинающий Web-разработчик

Как сделать изменение данных в базе через форму?

Имеется форма, в которой идет вывод данных из базы, 2 поля, ФИО и номер:
<!DOCTYPE html>
<html>
<head>
	<title>Студенты</title>
	<meta charset="utf-8">
</head>
<body>
  <style type="text/css">
	table,td,tr{
		border: 1px solid black;
		font-size: 1.1em
	}
	table,td,tr,input{
		text-align: center;
	}
	input{
		font-size: 0.7em	
	}
	button{
		font-size: 1.5em	
	}
	td a{
		font-size: 1em	
	}
  </style>
  <h1>Таблица Студенты:</h1>
  <table>
	  <tr>
		  <td>№</td>
		  <td>ФИО</td>
	  </tr>

<?php


if ($result->num_rows>0) {
	while ($row = $result->fetch_assoc()) {
		echo "<tr><td>".$row["numb"]."</td><td>".$row["fio"]."</td><td><a href=\"?edit&id=".$row['id']."\">изменить</a></td>";
	}
}
?>
  </table>
  <a href="?add"><button>добавить запись</button></a>
</body>
</html>


для редактирования информации есть форма, аналогичная той(почти)
<!DOCTYPE html>
<html>
<head>
	<title>Изменение записи</title>
</head>
<body>
<style type="text/css">
	table,td,tr{
		border: 1px solid black;
		font-size: 1.1em
	}
	table,td,tr,input{
		text-align: center;
	}
	table input{
		font-size: 0.7em	
	}
	input{
		font-size: 1.3em	
	}
  </style>
<h1>Изменение записи</h1>
<form action="?" method="POST">
<table>
	<tr>
		<td>№</td>
		<td>ФИО</td>
	</tr>
	<tr>
		<td><input name="numb" type="text" value="<?php echo $row['numb']; ?>"></td>
		<td><input name="fio" type="text" value="<?php echo $row['fio']; ?>"></td>
	</tr>
</table>
<input type="submit" value="Сохранить" name="save">
</form>
</body>
</html>


движок PHP
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

include_once $_SERVER['DOCUMENT_ROOT'] . '/cms/connection.php';
// SCRIPT AVTORIZATION

//SELECT
$selectData = "SELECT * FROM students";
$result = $connect->query($selectData);

include_once 'html.php';

//INSERT
if (isset($_GET['add'])) {
	include 'add.php';
}
if (isset($_POST['adding'])) {
	
	$numb = (int)$_POST['numb'];
	$fio = $_POST['fio'];

	$insertData = "INSERT INTO students(numb,fio) values(".$numb.",'".$fio."');";

	if($connect->query($insertData)===true){
		echo "adding complited";
	}
	else{
		echo "adding no complited";
	}
	header('location: .');
}
//UPDATE
if (isset($_GET['edit'])) {

	$id = (int)$_GET['id'];

	$selectData = "SELECT * FROM students where id=".$id;
	$result = $connect->query($selectData);
	$row = $result->fetch_assoc();

	include 'edit.php';

include_once $_SERVER['DOCUMENT_ROOT'] . '/cms/connection.php';

	if (isset($_POST['save'])) {

		$numb = (int)$_POST['numb'];
		$fio = $_POST['fio'];
		
		$updateData = "UPDATE students SET numb=1,fio='".$fio."' WHERE id=".$id;
		$result = $connect->query($updateData);

		if($result===true){
			echo 1;
		}
		else{
			echo 0;
		}

	}
	

}

?>
<br>
<?php
var_dump($_GET);
	?>
	<br>
	<?php
	var_dump($_POST);
?>

Вообщем не работает изменение данных, прописанных в движке, при этом если в саму форму редактирования вставить код изменения данных, то все работает
<!DOCTYPE html>
<html>
<head>
	<title>Изменение записи</title>
</head>
<body>
<style type="text/css">
	table,td,tr{
		border: 1px solid black;
		font-size: 1.1em
	}
	table,td,tr,input{
		text-align: center;
	}
	table input{
		font-size: 0.7em	
	}
	input{
		font-size: 1.3em	
	}
  </style>
<h1>Изменение записи</h1>
<form action="edit.php" method="POST">
<table>
	<tr>
		<td>№</td>
		<td>ФИО</td>
	</tr>
	<tr>
		<td><input name="numb" type="text" value="<?php echo $row['numb']; ?>"></td>
		<td><input name="fio" type="text" value="<?php echo $row['fio']; ?>"></td>
	</tr>
</table>
<input type="submit" value="Сохранить" name="save">
<?php 

include_once $_SERVER['DOCUMENT_ROOT'] . '/cms/connection.php';

if (isset($_POST['save'])) {

		$numb = (int)$_POST['numb'];
		$fio = $_POST['fio'];
		
		$updateData = "UPDATE students SET numb=".$numb.",fio='".$fio."'  WHERE id=11";
		$result = $connect->query($updateData);

		if($result===true){
			echo 1;
		}
		else{
			echo 0;
		}
		echo $updateData;
}

?>
</form>
</body>
</html>

почему не заносит?в посту нужные данные валяются, после нажатия кнопки save должно заносится, но почему-то не хочет...
п.с. за безопасность и отсутствие проверок не ругать.
  • Вопрос задан
  • 1000 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
У вас же включен вывод ошибок, да?
Должна появляться ошибка, что переменная $id не определена.

Сорри, фальстарт. Все еще хуже.
vX4svH6.png
Когда пофиксите, вылезет про id :)

Хинт: в большинстве редакторов есть функция или плагин для автоматического выравнивания кода. Если иногда его ровнять, то такие чудеса легко заметить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы