Всем здравствуйте!
В чём принципиальная (именно ПРИНЦИПИАЛЬНАЯ, так как это 2 разных учебных CRUD-проекта и с каждого из них я подключаюсь к разным таблицам) разница между 2-мя следующими кодами:
Код № 1, работающий с товарами:
<!doctype html>
<html lang="ru">
<head>
<title>Админ-панель</title>
</head>
<body>
<?php
$host = 'localhost'; // Хост, у нас все локально
$user = 'root'; // Имя созданного вами пользователя
$pass = ''; // Установленный вами пароль пользователю
$db_name = 'new_23'; // Имя базы данных
$link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
// Ругаемся, если соединение установить не удалось
if (!$link) {
echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
exit;
}
?>
<?php
if (isset($_POST["title"])) {
//Если это запрос на обновление, то обновляем
if (isset($_GET['red_id'])) {
$sql = mysqli_query($link, "UPDATE `lessons` SET `title` = '{$_POST['title']}', `description` = '{$_POST['description']}', `author` = '{$_POST['author']}' WHERE `ID`={$_GET['red_id']}");
} else {
//Иначе вставляем данные, подставляя их в запрос
$sql = mysqli_query($link, "INSERT INTO `lessons` (`title`, `description`, `author`) VALUES ('{$_POST['title']}', '{$_POST['description']}'), '{$_POST['author']}'");
}
//Если вставка прошла успешно
if ($sql) {
echo '<p>Успешно!</p>';
} else {
echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
}
}
if (isset($_GET['del_id'])) { //проверяем, есть ли переменная
//удаляем строку из таблицы
$sql = mysqli_query($link, "DELETE FROM `lessons` WHERE `id` = {$_GET['del_id']}");
if ($sql) {
echo "<p>Товар удалён!</p>";
} else {
echo '<p>Произошла ошибка: ' . mysqli_error($link) . '!</p>';
}
}
if (isset($_GET['red_id'])) {
$sql = mysqli_query($link, "SELECT `id`, `title`, `description`, `author` FROM `lessons` WHERE `id`={$_GET['red_id']}");
$product = mysqli_fetch_array($sql);
}
?>
<form action="" method="post">
<table>
<tr>
<td>Название:</td>
<td><input type="text" name="title" value="<?= isset($_GET['red_id']) ? $product['title'] : ''; ?>"></td>
</tr>
<tr>
<td>Описание:</td>
<td><input type="text" name="description" value="<?= isset($_GET['red_id']) ? $product['description'] : ''; ?>"></td>
</tr>
<tr>
<td>Автор:</td>
<td><input type="text" name="author" value="<?= isset($_GET['red_id']) ? $product['author'] : ''; ?>"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="OK"></td>
</tr>
</table>
</form>
<table border='1'>
<tr>
<td>Название</td>
<td>Описание</td>
<td>Автор</td>
<td>Удаление</td>
<td>Редактирование</td>
</tr>
<?php
$sql = mysqli_query($link, 'SELECT `id`, `title`, `description` FROM `lessons`');
while ($result = mysqli_fetch_array($sql)) {
echo '<tr>'.
"<td>{$result['title']}</td>".
"<td>{$result['description']}</td>".
"<td>{$result['author']}</td>".
"<td><a href='?del_id={$result['id']}'>Удалить</a></td>".
"<td><a href='?red_id={$result['id']}'>Изменить</a></td>".
'</tr>';
}
?>
</table>
<p><a href="?add=new">Добавить новую запись</a></p>
</body>
</html>
Код № 2, работающий с данными людей и содержащий в себе изображения (которые фактически расположены в папке, а ссылки на каждый из них берутся из БД-таблицы):
<!doctype html>
<html lang="ru">
<head>
<title>Админ-панель</title>
</head>
<body>
<?php
$host = 'localhost'; // Хост, у нас все локально
$user = 'root'; // Имя созданного вами пользователя
$pass = ''; // Установленный вами пароль пользователю
$db_name = 'new_23'; // Имя базы данных
$link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
// Ругаемся, если соединение установить не удалось
if (!$link) {
echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
exit;
}
?>
<?php
if (isset($_POST["title"])) {
//Если это запрос на обновление, то обновляем
if (isset($_GET['red_id'])) {
$sql = mysqli_query($link, "UPDATE `information` SET `num` = '{$_POST['num']}', `surname` = '{$_POST['surname']}', `name` = '{$_POST['called']}', `patronymic` = '{$_POST['patronymic']}', `address` = '{$_POST['address']}', `img` = '{$_POST['img']}' WHERE `ID`={$_GET['red_id']}");
} else {
//Иначе вставляем данные, подставляя их в запрос
$sql = mysqli_query($link, "INSERT INTO `information` (`num`, `surname`, `name`, `patronymic`, `address`, `img`) VALUES ('{$_POST['num']}', '{$_POST['surname']}'), '{$_POST['called']}', '{$_POST['patronymic']}', '{$_POST['address']}', '{$_POST['img']}'");
}
//Если вставка прошла успешно
if ($sql) {
echo '<p>Успешно!</p>';
} else {
echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
}
}
if (isset($_GET['del_id'])) { //проверяем, есть ли переменная
//удаляем строку из таблицы
$sql = mysqli_query($link, "DELETE FROM `information` WHERE `id` = {$_GET['del_id']}");
if ($sql) {
echo "<p>Запись удалена!</p>";
} else {
echo '<p>Произошла ошибка: ' . mysqli_error($link) . '!</p>';
}
}
if (isset($_GET['red_id'])) {
$sql = mysqli_query($link, "SELECT `num`, `surname`, `name`, `patronymic`, `address`, `img` FROM `information` WHERE `id`={$_GET['red_id']}");
$properties = mysqli_fetch_assoc($sql);
}
?>
<form action="" method="post">
<table>
<tr>
<td>Номер (не "ID"):</td>
<td><input type="text" name="num" value="<?= isset($_GET['red_id']) ? $properties['num'] : ''; ?>"></td>
</tr>
<tr>
<td>Фамилия:</td>
<td><input type="text" name="surname" value="<?= isset($_GET['red_id']) ? $properties['surname'] : ''; ?>"></td>
</tr>
<tr>
<td>Имя:</td>
<td><input type="text" name="called" value="<?= isset($_GET['red_id']) ? $properties['name'] : ''; ?>"></td>
</tr>
<tr>
<td>Отчество:</td>
<td><input type="text" name="patronymic" value="<?= isset($_GET['red_id']) ? $properties['patronymic'] : ''; ?>"></td>
</tr>
<tr>
<td>Адрес:</td>
<td><input type="text" name="address" value="<?= isset($_GET['red_id']) ? $properties['address'] : ''; ?>"></td>
</tr>
<tr>
<td>Изображение:</td>
<td><img width="300" height="300" name="img" src="<?= isset($_GET['red_id']) ? $properties['img'] : ''; ?>"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="OK"></td>
</tr>
</table>
</form>
<table border='1'>
<tr>
<td>Номер (не "ID")</td>
<td>Фамилия</td>
<td>Имя</td>
<td>Отчество</td>
<td>Адрес</td>
<td>Изображение</td>
</tr>
<?php
$sql = mysqli_query($link, 'SELECT `num`, `surname`, `name`, `patronymic`, `address`, `img` FROM `information`');
while ($result = mysqli_fetch_assoc($sql)) {
echo '<tr>'.
"<td>{$result['num']}</td>".
"<td>{$result['surname']}</td>".
"<td>{$result['name']}</td>".
"<td>{$result['patronymic']}</td>".
"<td>{$result['address']}</td>".
"<td>{$result['img']}</td>".
"<td><a href='?del_id={$result['id']}'>Удалить</a></td>".
"<td><a href='?red_id={$result['id']}'>Изменить</a></td>".
'</tr>';
}
?>
</table>
<p><a href="?add=new">Добавить новую запись</a></p>
</body>
</html>
Интересуюсь, так как 1-й проект - это образец, который я взял в качестве образца с какого-то сайта. В нём всё превосходно работает!
2-й проект - моя переделка "по образу и подобию".
Вопросы:
1. Почему 1-й код (образец) работает, а 2-й код - нет?;
2. Как исправить данную ситуацию?