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





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

Подготовка таблицы

Данный урок выполняется на основе (после выполнения) уроков "Создание базы данных и таблицы с товарами" и "Вывод данных из MySql на PHP". А именно, из этих уроков нам понадобится:

  • Таблица "products" с полями "ID", "Name", "Price";
  • Установленное соединение с БД MySql.

Создание формы для добавления записей

Для начала нам необходимо создать обычную форму, в которую мы будем записывать данные, и после отправки формы, они будут записываться в таблицу MySql.

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

<!doctype html>
<html lang="ru">
<head>
<title>Админ-панель</title>
</head>
<body>
<?php
    $host
="localhost";
    
$user="user_bd";
    
$pass="1q2w3e4r5t"//установленный вами пароль
    
$db_name="my_bd";
    
$link=mysql_connect($host,$user,$pass);
    
mysql_select_db($db_name,$link);
?>
</body>

Теперь в блок <body></body> после подключения к БД добавим HTML форму:

<table>
<form action="" method="post">
    <tr>
        <td>Наименование:</td>
        <td><input type="text" name="Name"></td>
    </tr>
    <tr>
        <td>Цена:</td>
        <td><input type="text" name="Price" size="3"> руб.</td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" value="OK"></td>
    </tr>
</form>
</table>

Обработка (вставка) полученных из формы данных

После того, как данные из формы будут отправлены, их надо принять и записать в таблицу БД.

Давайте првоерим, переданы ли данные и, если переданы, то сохраним их. Этот код лучше вставить перед формой, но после подключения к БД:

<?php
//Если переменная Name передана
if (isset($_POST["Name"])) {
    
//Вставляем данные, подставляя их в запрос
    
$sql mysql_query("INSERT INTO `products` (`Name`, `Price`) 
                        VALUES ('"
.$_POST['Name']."','".$_POST['Price']."')");
    
//Если вставка прошла успешно
    
if ($sql) {
        echo 
"<p>Данные успешно добавлены в таблицу.</p>";
    } else {
        echo 
"<p>Произошла ошибка.</p>";
    }
}
?>

Теперь после отправки формы в таблице у вас должна появиться новая срока - новый товар.

Удаление строк из Mysql

Давайте попробуем вывести все товары, а рядом с каждым товаром кнопку удалить (код вставляем в самый низ страницы перед тегом </body>):

<?php
//Получаем данные
$sql mysql_query('SELECT `ID`, `Name` FROM `products`');
while (
$result mysql_fetch_array($sql)) {
    echo 
$result['ID'].") ".$result['Name']." - <a href='?del=".$result['ID']."'>Удалить</a><br>";
}
?>

Теперь перед выводом товаров нам следует проверить, а не была ли передана переменная на их удаление, и если была, то удалить товар:

<?php
//Удаляем, если что
if (isset($_GET['del'])) {
    
$sql mysql_query('DELETE FROM `products` WHERE `ID` = "'.$_GET['del'].'"');
    if (
$sql) {
        echo 
"<p>Товар удален.</p>";
    } else {
        echo 
"<p>Произошла ошибка.</p>";
    }
}

while (
$result mysql_fetch_array($sql)) {
    echo 
$result['ID'].") ".$result['Name']." - <a href='?del=".$result['ID']."'>Удалить</a><br>";
}
?>

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

<!doctype html>
<html lang="ru">
<head>
<title>Админ-панель</title>
</head>
<body>
<?php
$host
="localhost";
$user="user_bd";
$pass="1q2w3e4r5t"//установленный вами пароль
$db_name="my_bd";
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);

//Если переменная Name передана
if (isset($_POST["Name"])) {
    
//Вставляем данные, подставляя их в запрос
    
$sql mysql_query("INSERT INTO `products` (`Name`, `Price`) 
                        VALUES ('"
.$_POST['Name']."','".$_POST['Price']."')");
    
//Если вставка прошла успешно
    
if ($sql) {
        echo 
"<p>Данные успешно добавлены в таблицу.</p>";
    } else {
        echo 
"<p>Произошла ошибка.</p>";
    }
}
?>
<table>
<form action="" method="post">
    <tr>
        <td>Наименование:</td>
        <td><input type="text" name="Name"></td>
    </tr>
    <tr>
        <td>Цена:</td>
        <td><input type="text" name="Price" size="3"> руб.</td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" value="OK"></td>
    </tr>
</form>
</table>

<?php
//Удаляем, если что
if (isset($_GET['del'])) {
    
$sql mysql_query('DELETE FROM `products` WHERE `ID` = "'.$_GET['del'].'"');
    if (
$sql) {
        echo 
"<p>Товар удален.</p>";
    } else {
        echo 
"<p>Произошла ошибка.</p>";
    }
}

//Получаем данные
$sql mysql_query('SELECT `ID`, `Name` FROM `products`');
while (
$result mysql_fetch_array($sql)) {
    echo 
$result['ID'].") ".$result['Name']." - <a href='?del=".$result['ID']."'>Удалить</a><br>";
}
?>
</body>

Надеюсь, что вы доработаете данный пример и сделаете сами редактирование данных о товаре. Это не сложно: рядом со ссылкой "Удалить" добавляем "Редактировать", при клике по которой передаем переменную "red". Перед отрисовкой формы проверяем, а нет ли этой переменной, и если есть, то извлекаем и подставляем данные в форму (в том числе ИД, как hidden). Перед новой вставкой, если передан ID, то делаем UPDATE, а не INSERT. Дерзайте ;)


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

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

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