Здравствуйте. У меня проблемка небольшая. Я не могу добавить либо же отредактировать товар. Товар храниться в database (mySQLI). Прошу помочь чем можете! Буду благодарен! Вот сам код product_admin.php: PHP: <!doctype html> <html lang="ru"> <head> <title>Редактирование товаров</title> <link rel="stylesheet" href="css/product_admin.css"> </head> <body> <?php $host = 'localhost'; // Хост, у нас все локально $user = 'root'; // Имя созданного вами пользователя $pass = ''; // Установленный вами пароль пользователю $db_name = 'test'; // Имя базы данных $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой // Ругаемся, если соединение установить не удалось if (!$link) { echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error(); exit; } //Если переменная Name передана if (isset($_POST["Name"])) { //Если это запрос на обновление, то обновляем if (isset($_GET['red'])) { $sql = mysqli_query($link, "UPDATE `products` SET `Name` = '{$_POST['Name']}',`imgfile` = '{$_POST['imgfile']}',`Price` = '{$_POST['Price']}' WHERE `ID`={$_GET['red']}"); } else { //Иначе вставляем данные, подставляя их в запрос $sql = mysqli_query($link, "INSERT INTO `products` (`Name`,`imgfile`, `Price`) VALUES ('{$_POST['Name']}','{$_POST['imgfile']}', '{$_POST['Price']}')"); } //Если вставка прошла успешно if ($sql) { echo '<p>Успешно!</p>'; } else { echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>'; } } //Удаляем, если что if (isset($_GET['del'])) { $sql = mysqli_query($link, "DELETE FROM `products` WHERE `ID` = {$_GET['del']}"); if ($sql) { echo "<p>Товар удален.</p>"; } else { echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>'; } } //Если передана переменная red, то надо обновлять данные. Для начала достанем их из БД if (isset($_GET['red'])) { $sql = mysqli_query($link, "SELECT `ID`,`imgfile`, `name`, `price` FROM `products` WHERE `ID`={$_GET['red']}"); $product = mysqli_fetch_array($sql); } ?> <form action="" method="post"> <table> <tr> <td>Изображение</td> <input type="file" name="imgfile"> </tr> <tr> <td>Наименование:</td> <td><input type="text" name="name" value="<?= isset($_GET['red']) ? $product['name'] : ''; ?>"></td> </tr> <tr> <td>Цена:</td> <td><input type="text" name="price" size="3" value="<?= isset($_GET['red']) ? $product['price'] : ''; ?>"> руб.</td> </tr> <tr> <td colspan="2"><input type="submit" value="Применить"></td> </tr> </table> </form> <button class="addproduct"><p><a href="?add=new" style="color: black">Добавить товар</a></p></button> <form class="box-prod"> <div class="box-card"> <?php //Получаем данные $sql = mysqli_query($link, 'SELECT `ID`,`imgfile`, `Name`, `Price` FROM `products`'); while ($result = mysqli_fetch_array($sql)) { echo "<p><p class='info_id'>ID: {$result['ID']}</p> <img class='imagefile' src='{$result['imgfile']}'> <p class='info_name'> Название: {$result['Name']}</p> <p class='info_price'> Цена: {$result['Price']} ₽</p> <p><a href='?del={$result['ID']}'><img class='delete' src='img/delete.png'></a> <a href='?red={$result['ID']}' class='edit'><img src='img/edit.png' class='edit_img'></a></p><br>"; } ?> </div> </form> </body> </html> <!--<img class='delete' src='img/delete.png'> <a class='delete' href='?del={$result['ID']}'>Удалить</a> <a href='?del={$result['ID']}'></a>-->
Добрый день! У Вас проблема в несоответствие названий полей формы и названий переменных массиве $_POST. В форме : "imgfile","name", "price" в $_POST: "Imgfile","Name", "Price" Советую Вам начинать поиск ошибок с распечаки $_POST PHP: <body> <?php echo "<pre>"; print_r($_POST); ... Затем следует распечатать $query, код я бы поменял так PHP: ... if (isset($_GET['red'])) { $query = "UPDATE `products` SET `Name` = '{$_POST['name']}',`imgfile` = '{$_POST['imgfile']}',`Price` = '{$_POST['price']}' WHERE `ID`={$_GET['red']}"; } else { //Иначе вставляем данные, подставляя их в запрос $query = "INSERT INTO `products` (`Name`,`imgfile`, `Price`) VALUES ('{$_POST['name']}','{$_POST['imgfile']}', '{$_POST['price']}')"; } echo $query; $sql = mysqli_query($link, $query); ... Далее, если не стало понятно в чём проблема, копируете $query, заходите в phpMyAdmin Открываете таблицу и в закладку SQL вставляете там запрос. Удачи! P.S. Читал Ваша сообщение : «Ищу человека, который может помочь с PHP и MySQL» Возьмёте меня помощники?
Код я поменял как вы сказали, но не фурычит А на счет помощника то пишите в вк мне: https://vk.com/mistergerst
Первый признак г/кода – exit, обработка POST и т.п. внутри тега body (или вообще какого-то HTML-кода). Начните с основ – разделения обработки GET- и POST-запроса. --- Добавлено --- P.S. mysqli – это модуль пыха. БД (СУБД) – MySQL (или MariaDB).
Вы весь код переделали? Я изменил только несколько строк чтоб Вам было понятно в чём проблема. Вообще, менять нужно всё. Обратите внимание на сообщение mikitomlin. Это "не фурычит" выдаёт сообщения ошибках?
Если вообще ничего, значит в коде фатальная ошибка, а error_reporting отключён Попробуйте вставить в начале кода PHP: ini_set('error_reporting', E_ALL); Но всё это припарки. Нужно полносью переписать этот скрипт. Вы понимаете, что нужно не только сохранять имя файла в БД, но и сохранять файл на сервере? Не понятно, какое отношение имеет это линк к коду.
Можете написать мне в вк? https://vk.com/mistergerst --- Добавлено --- Вставил, протестировал, ничего не выдает
В начале кода вставили PHP: echo "<pre>"; print_r($_POST); Пустой массив не выдаёт? Как Вы вызываете скрипт? Напишу на vk