Ошибка(-и) при попытке добавления в БД ссылки на IMG
Всем здравствуйте, уважаемые форумчане!
Имеется небольшое CRUD-приложение со следующим кодом: <?php // $a = 'привет, я строка'; // die(var_dump($a)); ?> <!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 (!empty($_POST["num"])) { //Если это запрос на обновление, то обновляем if (!empty($_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 (!empty($_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 (!empty($_GET['red_id'])) { $sql = mysqli_query($link, "SELECT `id`, `num`, `surname`, `name`, `patronymic`, `address`, `img` FROM `information` WHERE `id`={$_GET['red_id']}"); $properties = mysqli_fetch_assoc($sql); } ?> <?php $target_dir = "images/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // проверяем, является ли файл изображения настоящим if(!empty($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } // проверяем, не существует ли файл уже if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // проверяем размер файла if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // разрешаем определённые форматы файлов if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0; } // проверяем не присвоено ли переменной $UPLOADOK значение "0" по ошибке if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // если всё в порядке, то пробуем запустить файл } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { $tes = "INSERT INTO information('img') VALUES('".$target_file."')"; // echo $tes.'<br>'; $res = mysqli_query($tes); if($res) { echo "Файл упешно загружен"; } else { echo "Путь не добавлен в базу данных, но файл загружен"; } } else { echo "Файл не загружен!"; } ?> <form action="" method="post" enctype="multipart/form-data"> <table> <tr> <td>Номер (не "ID"):</td> <td><input type="text" name="num" value="<?= !empty($_GET['red_id']) ? $properties['num'] : ''; ?>"></td> </tr> <tr> <td>Фамилия:</td> <td><input type="text" name="surname" value="<?= !empty($_GET['red_id']) ? $properties['surname'] : ''; ?>"></td> </tr> <tr> <td>Имя:</td> <td><input type="text" name="called" value="<?= !empty($_GET['red_id']) ? $properties['name'] : ''; ?>"></td> </tr> <tr> <td>Отчество:</td> <td><input type="text" name="patronymic" value="<?= !empty($_GET['red_id']) ? $properties['patronymic'] : ''; ?>"></td> </tr> <tr> <td>Адрес:</td> <td><input type="text" name="address" value="<?= !empty($_GET['red_id']) ? $properties['address'] : ''; ?>"></td> </tr> <tr> <td>Загрузка изображения:</td> <td><input type="file" name="fileToUpload" id="fileToUpload" value="<?= !empty($_GET['red_id']) ? $properties['img'] : ''; ?>"></td> <td><input type="submit" value="Загрузить изображение" name="submit"></td> </tr> <tr> <td>Ссылка на изображение:</td> <td><input type="text" name="img" value="<?= !empty($_GET['red_id']) ? $properties['img'] : ''; ?>"></td> </tr> <tr> <td>Изображение:</td> <td><img width="300" height="300" name="img" src="<?= !empty($_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 `id`, `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> Данное приложение вроде как справляется почти со всеми поставленными перед ней задачами, за исключением одной: При добавлении изображении на локальный сервер изображение, как это положено, копируется в специально выделенную для всех их папку, но в БД не добавляется ссылка на это изображение. Как я предполагаю, моя ошибка заключается в участке кода: if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { $tes = "INSERT INTO information('img') VALUES('".$target_file."')"; // echo $tes.'<br>'; $res = mysqli_query($tes); if($res) { echo "Файл упешно загружен"; } else { echo "Путь не добавлен в базу данных, но файл загружен"; } } else { echo "Файл не загружен!"; } ПОЧЕМУ ТАК ПРОИСХОДИТ? КАКАЯ(-ИЕ) ОШИБКА(-И) ДОПУЩЕНА(-Ы) МНОЙ ЗДЕСЬ? |
Вы простых вещей не знаете, а уже уже приложения, ООП... :)
$tes = "INSERT INTO information('img') VALUES('".$target_file."')"; - ничего тут не смущает? |
В продолжение диалога......
А что меня должно смущать там?
Может, всё-таки без загадок обойдёмся в этот раз, профессор? :-) Я уже 2-й день ломаю голову над этим своим говнокодом |
$query="INSERT INTO information(`img`) VALUES('$target_file')"; ps. почитайте про MVC |
Цитата:
Цитата:
|
Nexus, зря, то зачем и почему эти косые кавычки он так и не будет знать. Это не тот случай, когда подсказка есть помощь. ;)
|
laimas, Не стоит терять веру в людей)
Может быть автор после вашего комментария таки ознакомиться с документацией. Ну или хотя бы начнет при ошибках к ней обращаться в первую очередь. |
Цитата:
Да у всех посетителей форума даже при желании не хватит ни времени, ни терпения рассказывать и подсказывать о простых вещах. Тем более что подсказки, которые просто будут использоваться без желания разобраться "почему", это есть худшее зло из всей такой методы обучения. Я знаю что говорю, ибо я имею образование, которое связано с педагогикой, и хоть я в школе не работал, но практику какую никакую проходить пришлось. И не надо говорить, что то школа, а тут программирование. Это без разницы - не научите ребенка понимать зачем нужно снимать штанишки перед горшком, так и будет всю жизнь ходить в штаны. ;) |
Цитата:
Я думаю вера тут имеет место быть, поэтому так выразился. Цитата:
Ну, это, разумеется, при условии, что ты пытаешься научиться кодить, а не просто слепить проект. |
Цитата:
Цитата:
А ему уже не раз давались ссылки на то, что нужно прочесть и изучить. |
Часовой пояс GMT +3, время: 00:07. |