Редактирование данных в MySql с помощью PHP (админ-панель)





Счетчик PR-CY.Rank

Вывод, редактирование и удаление данных из MySql

В данном уроке мы с вами пошагово сделаем следующее:

  • Создадим таблицу MySql
  • Выведем из таблицы MySql данные
  • Сделаем форму для редактирования и удаления данных из таблицы MySql
Итак, приступим!

Создание таблицы

Давайте создадим в нашей БД таблицу products со следующими полями: ID, Name, Price. Поле Name у нас будет иметь тип TEXT, остальные два - INT. Если вам лень в PhpMyAdmin создавать такую табличку руками, то можете просто в нем выполнить вот этот SQL-код:

CREATE TABLE IF NOT EXISTS `products` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` text NOT NULL,
  `Price` int(11) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Теперь давайте заполним нашу таблицу тестовыми данными. Для наглядности мы добавим 3 записи:

Mysql-таблица с товарами

Заполнить таблицу можно либо ручками через PhpMyAdmin, либо опять же вот таким простым SQL-запросом:

INSERT INTO `products` (`ID`, `Name`, `Price`) VALUES
(1, 'Хлеб', 35),
(2, 'Йогурт', 27),
(3, 'Пиво Балтика #7', 50);

Вывод записей

Следующим нашим шагом будет обычный вывод этих данных из MySql на web-страничку.

Создадим новую страницу, к примеру "product_list.php" с установленным соединением с БД:

<!doctype html>
<html lang="ru">
<head>
<title>Админ-панель</title>
</head>
<body>
<?php
    $host
="localhost";    //хост
    
$user="root";        //пользователь
    
$pass="";             //установленный вами пароль
    
$db_name="my_db";    //название бд
    
$link=mysql_connect($host,$user,$pass); //коннектимся
    
mysql_select_db($db_name,$link);        //выбираем БД
?>
</body>
</html>

Теперь выведем все записи из таблицы. Для этого после подключения к БД (перед закрывающимся тегом </body>) вставим следующий код:

<table border='1'>
<tr>
    <td>Идентификатор</td>
    <td>Наименование</td>
    <td>Цена</td>
</tr>
<?php
$sql 
mysql_query("SELECT `ID`, `Name`, `Price` FROM `products`"$link);
while (
$result mysql_fetch_array($sql)) {
    echo 
'<tr><td>'.$result['ID'].'</td><td>'.$result['Name'].'</td><td>'.$result['Price'].' рублей</td></tr>';
}
?>
</table>

Если вы увидели на экране табличку с вашими товарами, то ПОЗДРАВЛЯЮ, пока что у вас все получается как надо! Возможно только для этого вы сюда и пришли. Этот вариант уже можно разместить на сайте, а добавлять и редактировать товары четез PhpMyAdmin. Все изменения будут автоматически отображаться на вашей страничке, доступной пользователям. Конечно вам придется для более касивого отображения таблички поколдовать со стилями css, но это уже другая тема :) Итак, мы поедем дальше и сделаем редактирование и удаление этих товаров.

Редактирование и удаление записей

Давайте определимся, что нам надо уметь делать? Первое - удалять записи, воторое - редактировать записи. Ну а третье (вставлять новые записи) - мы уже сделали в прошлом уроке.

Итак, для того, чтобы мы могли удалить запись, нам надо в строке браузера передать в какой-либо переменной ID этой записи. Иными словами, нам надо, чтобы строка браузера у нас выглядела примерно так:

Переменная в строке браузера
На скриншоте выше мы видим переменную del_id в строке браузера, которая равна 1. Значение этой переменной можно прочитать средствами PHP и удалить из MySql-таблицы запись под номером 1 (ID = 1). Давайте сделаем это. Для начала передадим переменную, которая укажет, какую запись надо удалить. Для этого рядом с каждой записью добавим ссылку на удаление, в которой и передадим эту переменную. Итак, наша табличка с выведенными данными изменится следующим образом:
<table border='1'>
<tr>
    <td>Идентификатор</td>
    <td>Наименование</td>
    <td>Цена</td>
</tr>
<?php
$sql 
mysql_query("SELECT `ID`, `Name`, `Price` FROM `products`"$link);
while (
$result mysql_fetch_array($sql)) {
    echo     
'<tr><td>'.$result['ID'].'</td>'.
             
'<td>'.$result['Name'].'</td>'.
             
'<td>'.$result['Price'].' рублей</td>'.
             
'<td><a href="?del_id='.$result['ID'].'">Удалить</a></td></tr>';
}
?>
</table>

Теперь, если вы будете переходить по ссылкам "Удалить", то увидите, что значения переменной в строке браузера будет меняться в зависимости от выбранного продукта. Теперь давайте перед самым выводом товаров проверим, не передана ли переменная del_id, и если она передана, то удалим запись. Для этого после подключения к БД почти в начало файла вставим следующий код:

<?php
if (isset($_GET['del_id'])) { //проверяем, есть ли переменная
    
$sql mysql_query('DELETE FROM `products` WHERE `ID` = '.$_GET['del_id']); //удаляем строку из таблицы
}
?>

Редактирование записей

Итак, если вы дочитали до сюда, то вы уже что-то понимаете, что к чему и как это работает. Я постараюсь рассказать, как будет работать редактирование, а в завершение приведу полный листинг кода всего примера, где вы сможете посмотреть и понять, как это реализовать.

Итак, редактирование:

  • мы также как и для удаления передадим переменную red_id
  • достанем из БД запись с таким номером, чему равна red_id
  • подставим полученные из БД данные в форму редактирования
  • сохраним эти данные в БД

Полный листинг кода

<!doctype html>
<html lang="ru">
<head>
<title>Админ-панель</title>
</head>
<body>
<?php
    $host
="localhost";    //хост
    
$user="root";        //пользователь
    
$pass="";             //установленный вами пароль
    
$db_name="my_db";    //название бд
    
$link=mysql_connect($host,$user,$pass); //коннектимся
    
mysql_select_db($db_name,$link);        //выбираем БД
    
    
if (isset($_GET['del_id'])) { //проверяем, есть ли переменная на удаление
        
$sql mysql_query('DELETE FROM `products` WHERE `ID` = '.$_GET['del_id']); //удаляем строку из таблицы
    
}
    
    if (isset(
$_GET['red_id'])) { //Проверяем, передана ли переменная на редактирования
        
if (isset($_POST['Name'])) { //Если новое имя предано, то обновляем и имя и цену
            
$sql mysql_query('UPDATE `products` SET '
                    
.'`Name` = "'.$_POST['Name'].'",'
                    
.'`Price` = '.$_POST['Price'].' '
                    
.'WHERE `ID` = '.$_GET['red_id']);
        }
    }
?>
<table border='1'>
<tr>
    <td>Идентификатор</td>
    <td>Наименование</td>
    <td>Цена</td>
</tr>
<?php
$sql 
mysql_query("SELECT `ID`, `Name`, `Price` FROM `products`"$link);
while (
$result mysql_fetch_array($sql)) {
    echo     
'<tr><td>'.$result['ID'].'</td>'.
             
'<td>'.$result['Name'].'</td>'.
             
'<td>'.$result['Price'].' рублей</td>'.
             
'<td><a href="?del_id='.$result['ID'].'">Удалить</a></td>'.
             
'<td><a href="?red_id='.$result['ID'].'">Редактировать</a></td></tr>';
}
?>
</table>

<?php
    
if (isset($_GET['red_id'])) { //Если передана переменная на редактирование
        //Достаем запсись из БД
        
$sql mysql_query("SELECT `ID`, `Name`, `Price` FROM `products` WHERE `ID`=".$_GET['red_id'], $link); //запрос к БД
        
$result mysql_fetch_array($sql); //получение самой записи
        
        //Отрисовываем форму. Обратите внимание, что фигурную скобку условия if мы закроем только после формы.
        //Т.е. если переменная red_id не передана, то форма не отрисуется
        //И не важно, что посреди цыкла мы закрываем тег PHP , его работа продолжается, пока скобка не закроется
        
?>
<table>
<form action="" method="post">
    <tr>
        <td>Наименование:</td>
        <td><input type="text" name="Name" value="<?php echo ($result['Name']); ?>"></td>
    </tr>
    <tr>
        <td>Цена:</td>
        <td><input type="text" name="Price" size="3" value="<?php echo ($result['Price']); ?>"> руб.</td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" value="OK"></td>
    </tr>
</form>
</table>
        <?php
    
}
?>

</body>
</html>

Ну вот, друзья, мы и научились доставать данные из БД MySql, отображать их на странице, удалять их прямо со страницы и, конечно же, редактировать ;)

Кстати, если вы еще не нашли себе хостинг для сайта (место в сети интернет), или не выбрали домен, то рекомендую почитать статью "Как разместить сайт в сети Интернет", в ней много всякой полезной информации.

Удачи в изучении связки PHP и MySql. Пишите комментарии, ставьте лайки "Мне нравится"!


<- Запись данных в MySql на PHP

Крутов Герман При использовании цитат и материалов данной статьи ссылка вида "Редактирование данных в MySql с помощью PHP (админ-панель)" обязательна.

Код ссылки: <a href="http://intop24.ru/article_15_lesson_6.php" target="_blank">Редактирование данных в MySql с помощью PHP (админ-панель)</a>
Крутов Герман © 2009-2017 8-953-760-10-55 8-913-926-43-55 krutovgerman2007@ya.ru Я ВКонтате R197475897281 Z175174465974 41001198936523