Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Shady-sister
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 34

Формы. Добавление и удаление записей.

19.03.2012, 03:23. Показов 2071. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Разбираю абсолютно несложный пример и все вроде бы хорошо и понятно, но... он не работает. Не добавляются и не удаляются записи. Итак, имеем:

login.php
PHP
1
2
3
4
5
6
<?php
$db_hostname = 'localhost:3306';
$db_database = 'publications';
$db_username = 'me';
$db_password = '1234';
?>
index.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php 
require_once 'login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
 
if (!$db_server) die("Невозможно подключться к MySQL: " . mysql_error());
 
mysql_select_db($db_database) or die("Невозможно выбрать базу данных: " . mysql_error());
 
if (isset($_POST['author']) &&
    isset($_POST['title']) &&
    isset($_POST['category']) &&
    isset($_POST['year']) &&
    isset($_POST['isbn']))
{
    $author     = get_post('author');
    $title      = get_post('title');
    $category   = get_post('category ');
    $year       = get_post('year');
    $isbn       = get_post('isbn');
    
    if (isset($_POST['delete']) && $isbn !="")
    {
        $query = "DELETE FROM classics WHERE isbn='$isbn";
        
        if (!mysql_query($query, $db_server))
                echo "Сбой при удалении данных: $query<br />" . 
                mysql_error () . "<br /><br />";
    }
    else
    {
        $query = "INSERT INTO classics VALUES" . 
                "('$author', '$title', '$category', '$year', '$isbn')";
        
        if (!mysql_query($query, $db_server))
                echo "Сбой при вставке данных: $query<br />" . 
                mysql_error () . "<br /><br />";
    }
}    
 
echo <<<_END
<form action="index.php" method="post"><pre>
    Author      <input type="text" name="author" />
    Title       <input type="text" name="title" />
    Category    <input type="text" name="caregory" />
    Year        <input type="text" name="year" />
    ISBN        <input type="text" name="isbn" />
                <input type="submit" value="Add record" />
</pre></form>
_END;
 
$query = "SELECT * FROM classics";
$result = mysql_query($query);
 
if (!$result) die ("Сбой при доступе к БД: " . mysql_error());
$rows = mysql_num_rows($result);
 
for ($j = 0; $j < $rows; ++$j)
{
    $row = mysql_fetch_row($result);
    echo <<<_END
    <pre>
        Author      $row[0]
        Title       $row[1]
        Caregory    $row[2]
        Year        $row[3]
        ISBN        $row[4]
    </pre>    
    <form action="index.php" method="post">
    <input type="hidden" name="delete" value="yes" />
    <input type="hidden" name="isbn" value="$row[4]" />
    <input type="submit" value="Delete record" /></form>    
_END;
   
}
 
mysql_close($db_server);
 
function get_post($var)
{
    return mysql_real_escape_string($_POST[$var]);
}
 
?>
Табличка в БД
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.03.2012, 03:23
Ответы с готовыми решениями:

Добавление и удаление записей в БД
Не получается удалить запись, происходит только добавление не понимаю в чём ошибка :( &lt;?php require_once 'login.php'; ...

Добавление, редактирование и удаление записей
Доброго времени суток! У меня на главной странице раздел редактор страниц через switch включен, то есть в адресной строке...

Добавление записей в таблицу и удаление
Как сделать так, что бы если запись уже существует с таким именем, что бы повторно не добавлялась?? И как сделать так, что бы была кнопка...

7
21 / 21 / 3
Регистрация: 05.05.2011
Сообщений: 62
19.03.2012, 08:35
ошибки
1) лишний пробел в строке 17
$category = get_post('category ');
2) неверное название поля в строке 44
Category <input type="text" name="caregory" />
3) строка 64
Caregory $row[2]
1
35 / 35 / 7
Регистрация: 27.03.2011
Сообщений: 146
19.03.2012, 11:30
http://php.net/manual/ru/book.pdo.php
0
 Аватар для Shady-sister
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 34
19.03.2012, 15:19  [ТС]
runner42195, а-а-а-а, как глупо вышло. Спасибо большое.

Добавлено через 1 час 32 минуты
Вот заработало добавление. Но удаление так и нет. Нашла еще в 23й строке нехватку одинарной кавычки, но проблему не решило.
0
21 / 21 / 3
Регистрация: 05.05.2011
Сообщений: 62
19.03.2012, 17:10
в форме удаления есть только два поля:
HTML5
1
2
<input type="hidden" name="delete" value="yes" />
    <input type="hidden" name="isbn" value="$row[4]" />
и соответственно нужно проверять наличие только двух переменных, а для добавления новой записи нужны все проверки:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
if(isset($_POST['isbn']) and $_POST['isbn']!='' and isset($_POST['delete']) )
{
    $isbn       = get_post('isbn');
    $query = "DELETE FROM classics WHERE isbn='$isbn'";
        if (!mysql_query($query, $db_server))
                echo "Сбой при удалении данных: $query<br />" .
                mysql_error () . "<br /><br />";
}
elseif (isset($_POST['author']) &&
    isset($_POST['title']) &&
    isset($_POST['category']) &&
    isset($_POST['year']) &&
    isset($_POST['isbn']))
{
    $author     = get_post('author');
    $title      = get_post('title');
    $category   = get_post('category');
    $year       = get_post('year');
    $isbn       = get_post('isbn');
 
 
        $query = "INSERT INTO classics (author,title,category,year,isbn) VALUES" .
                "('$author', '$title', '$category', '$year', '$isbn')";
 
        if (!mysql_query($query, $db_server))
                echo "Сбой при вставке данных: $query<br />" .
                mysql_error () . "<br /><br />";
 
}
0
 Аватар для Shady-sister
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 34
19.03.2012, 17:53  [ТС]
С проверкой усвоила. Но все равно не удаляет
Вот так вот учиться по книжкам
0
 Аватар для Andruhin
142 / 142 / 27
Регистрация: 19.12.2011
Сообщений: 250
14.04.2012, 11:42
Проверь данные, которые отправляет твоя форма. На время дебага принтуй пост, котрый получаешь:

PHP
1
print_r($_POST)
Может в нем кроется проблема.

Добавлено через 13 минут
В первом варианте, который ты изначально использовала, у тебя не доходило дело до проверки удаления, так как форма удаляющая записи у тебя не отправляет автора, название, категорию и год, а отправляет только метку удаления и уникальный идентификатор. А ты вначале слушаешь получение всех данных нужных для добавления, и только во время присутствия этих данных начинаешь слушать удаление.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if (isset($_POST['author']) &&
    isset($_POST['title']) &&
    isset($_POST['category']) &&
    isset($_POST['year']) &&
    isset($_POST['isbn']))
{
    ... ... ...
 
    if (isset($_POST['delete']) && $isbn !="")
    {
        $query = "DELETE FROM classics WHERE isbn='$isbn";
        
        if (!mysql_query($query, $db_server))
                echo "Сбой при удалении данных: $query<br />" . 
                mysql_error () . "<br /><br />";
    }
    else
    {
        $query = "INSERT INTO classics VALUES" . 
                "('$author', '$title', '$category', '$year', '$isbn')";
        
        if (!mysql_query($query, $db_server))
                echo "Сбой при вставке данных: $query<br />" . 
                mysql_error () . "<br /><br />";
    }
}
тебе просто нужно было переделать проверку примерно на такой вариант:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if (isset($_POST['author']) &&
    isset($_POST['title']) &&
    isset($_POST['category']) &&
    isset($_POST['year']) &&
    isset($_POST['isbn']))
{
    $author     = get_post('author');
    $title      = get_post('title');
    $category   = get_post('category ');
    $year       = get_post('year');
    $isbn       = get_post('isbn');
    
   $query = "INSERT INTO classics VALUES" . 
         "('$author', '$title', '$category', '$year', '$isbn')";
        
   if (!mysql_query($query, $db_server))
         echo "Сбой при вставке данных: $query<br />" . 
         mysql_error () . "<br /><br />";
   
}
 
if (isset($_POST['delete']) && $_POST['isbn'] !="")
    {
 
        $query = "DELETE FROM classics WHERE isbn='$isbn";
        
        if (!mysql_query($query, $db_server))
                echo "Сбой при удалении данных: $query<br />" . 
                mysql_error () . "<br /><br />";
    }
1
 Аватар для Shady-sister
3 / 3 / 0
Регистрация: 10.12.2009
Сообщений: 34
14.04.2012, 11:59  [ТС]
Спасибо большое, я разобралась!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2012, 11:59
Помогаю со студенческими работами здесь

Добавление, удаление и изменение связанных записей
Имеется 2 таблицы Студенты и Группы. В таблица студенты внешний ключ группа которая указывает на родительскую таблицу. Не получается...

Добавление, редактирование, удаление записей через форму
Здравствуйте, не могу сделать так что каждый раз при входе на форму не добавлялась новая строка. И как сделать редактирование с новой...

Цикл в цикле при добавление записей из формы в БД
Доброе утро форум! Вопрос такой, как мне реализовать код, чтобы при добавление в БД из формы существующие записи обновлялись(они выдаются...

простая база с одним полем (оно же ключ), но много записей. как максимально быстро организовать проверку и добавление пакета новых записей?
есть простейшая БД (с одним полем), состоящая из уникальных строковых ключей, типа: SDPT234ddfs4545FFqsdfs TXB2ZQ5d ...

Добавление записей в БД
Добрый день. Вот написал функцию и форму для добавления в БД пользователя. Открывая ее заполняю и нажимаю кнопку в БД ничего не появляется....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru