Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 06.08.2010
Сообщений: 19

Не вносится изменения в БД

23.08.2010, 21:41. Показов 1555. Ответов 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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?     
if (!isset($_GET['id']))
 
 
{
$result = mysql_query ("SELECT id,title,firm,proizvod FROM product");
$myrow = mysql_fetch_array($result);
 
do
{
printf("<p><a href =' edit_record.php?id=%s'>%s</a><br>%s<br> %s</p>", $myrow["id"], $myrow["firm"], $myrow["proizvod"],$myrow["title"]);
}
 
while ($myrow = mysql_fetch_array ($result));
 
}
 
else
 
{
$result = mysql_query ("SELECT * FROM product WHERE id= " . (int)$_GET['id']) or die(mysql_error());
$myrow = mysql_fetch_array ($result);
$result2 = mysql_query('SELECT id,cat FROM categories', $db);
$myrow2 = mysql_fetch_array ($result2);
print <<<HERE
<div class='tovar_form'>
<form name='form1' method='post' action='update_record.php'>
<p>
<label>Введите артикул:<br>
<input value="$myrow[articul]" type="text" name="articul" id="articul">
</label>
</p>
<p>
<label>Введите название товара:<br>
<input value="$myrow[firm]" name="firm" type="text" id="firm" value="&lt;p&gt;" size="40px">
</label>
</p>
<p>
<label>Введите фирму производителя:<br>
<input value="$myrow[proizvod]" name="proizvod" type="text" id="proizvod" size="40px">
</label>
</p>
<p>
<label>Выберите раздел:<br>
<select name='category' id='category'>
HERE;
$result2 = mysql_query('SELECT id,cat FROM categories', $db);
if (!$result2)
{
echo 'Запрос не прошел ';
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow2 = mysql_fetch_array ($result2);
do 
{
printf ("<option value='%s'> %s </option>" , $myrow2['cat'], $myrow2['cat']);
}
while ($myrow2 = mysql_fetch_array ($result2));
}
else
{
echo"нет записей";
}
echo"
</select>
</label>
</p>
<p>
<label>Выберите миниатюру:<br>
<input name='image' type='file'>
</label>
 </p>
<p>
<label>Введите краткое описание товара:<br>
<textarea name='descr' id='descr' cols='35' rows='10'> $myrow[descr]
</textarea>
</label>
</p>
<p>
<label>
Введите полное описание товара:<br>
<textarea name='text' cols='35' rows='15' id='text'>$myrow[text]
</textarea>
</label>
</p>
<input name='id' type='hidden' value='$myrow[id]'>
<p>
<label>
<input name='submit' type='submit' class='button' id='submit' value='Сохранить изменения'>
</label>
</p>
<br>
<br>
</form>
</div>
";
 
}  
?>
Вот код файла-обработчика:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 <?php
   error_reporting( E_ALL );
 
if (isset($_GET['id']))
{
   
  $result = mysql_query ("UPDATE product SET articul='$articul', firm='$firm', proizvod='$proizvod', title='$category', descr='$descr', text='$text' WHERE id= " . (int)$_GET['id'] ) or die( mysql_error() );
  
  if ( $result == true ) 
  {
  echo "<p>Запись обновлена</p>";
  }
  else
  {
  echo "<p>Запись не обновлена</p>";
  }
}
 else
  {
  echo "<p>Запись не обновлена</p>";
  }
   ?>
Помогите пожалуйста разобраться.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.08.2010, 21:41
Ответы с готовыми решениями:

Не вносится значение больше 2147483647
установил значение ячейки INT(17) и вношу значение 1 500 000 000 000 000, в бд записывается 2147483647, что делать в данной ситуации...

Не преобразовывается string в double и не вносится в массив
Суть такова, при попытке преобразовать строковую переменную в double и внести её в массив программа выдает ошибку &quot;Additional...

Не вносится вычисляемое в форме значение в таблицу
Это продолжение ранее начатой темы: https://www.cyberforum.ru/ms-access/thread1572201.html Вопрос с выводом информационного сообщения на...

4
 Аватар для RosenR@t
136 / 136 / 7
Регистрация: 07.07.2010
Сообщений: 774
24.08.2010, 10:20
PHP
1
"UPDATE product SET articul='$articul', firm='$firm', proizvod='$proizvod', title='$category', descr='$descr', text='$text' WHERE id= "
Обновляются значения articul,firm,proizvod,proizvod,title,des cr,text. Но тут не указывается какое поле надо обновлять WHERE id=, допустим если было бы значение WHERE id="$id", то обновилось бы поле с идентификатором $id, а так просто не указано что именно обновлять.

Добавлено через 10 минут
PHP
1
. (int)$_GET['id'] ) or die( mysql_error() )
Если id получает эта строчка, то она должна быть в запросе, не выходить за двойные ковычки, по тому что запрос тут кончается после
PHP
1
WHERE id="
символы которые идут далее не относятся к запросу

Добавлено через 2 минуты
То есть по идеи должно работать в таком виде
PHP
1
("UPDATE product SET articul='$articul', firm='$firm', proizvod='$proizvod', title='$category', descr='$descr', text='$text' WHERE id= . (int)$_GET['id'] ")or die( mysql_error() );
Добавлено через 2 минуты
PHP
1
WHERE id= '. (int)$_GET['id']'
Возможно это нужно будет взять в кавычки, но это вроде не обязательно
0
0 / 0 / 0
Регистрация: 06.08.2010
Сообщений: 19
24.08.2010, 14:08  [ТС]
Сделал изменения в соответствии с вашими поправками вот что получилось:
PHP
1
 $result = mysql_query ("UPDATE product SET articul='$articul', firm='$firm', proizvod='$proizvod', title='$category', descr='$descr', text='$text' WHERE id= '$id'" ) or die( mysql_error() );
Но изменения по прежнему не вносятся.
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
24.08.2010, 15:06
Цитата Сообщение от momo21 Посмотреть сообщение
if (isset($_GET['id']))
А почему GET? Ведь Вы отправляете POST'ом. Т.е. так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
   error_reporting( E_ALL );
 
if (isset($_POST['id']))
{
   
  $result = mysql_query ("UPDATE product SET articul='$articul', firm='$firm', proizvod='$proizvod', title='$category', descr='$descr', text='$text' WHERE id= " . (int)$_GET['id'] ) or die( mysql_error() );
  
  if ( $result == true ) 
  {
  echo "<p>Запись обновлена</p>";
  }
  else
  {
  echo "<p>Запись не обновлена</p>";
  }
}
 else
  {
  echo "<p>Запись не обновлена</p>";
  }
   ?>
P.S. Пишите разные ошибки, что бы Вы могли точно определить, где она произошла. А то
Цитата Сообщение от momo21 Посмотреть сообщение
se
* {
* echo "<p>Запись не обновлена</p>";
* }
}
*else
* {
* echo "<p>Запись не обновлена</p>";
* }
Могла случиться и при проверке результата запроса и при отсутствии $_GET['id']( так и было я думаю ).

Добавлено через 48 секунд
Не весь код исправил, но суть думаю поняли

Добавлено через 46 секунд
К тому, же MySQL ошибки не пишет.
0
 Аватар для RosenR@t
136 / 136 / 7
Регистрация: 07.07.2010
Сообщений: 774
24.08.2010, 19:43
Да, верно подмечено,
PHP
1
2
<form name='form1' method='post' action='update_record.php'>
<p>
Надо использовать тогда уже везде метод POST

Добавлено через 48 секунд
romchiksoad всё верно написал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.08.2010, 19:43
Помогаю со студенческими работами здесь

ListView: текст вносится не в тот столбец
Доброго времени суток, форумчане. Интересует следующая вещь: на форме имеется ListView. Заполненный. Несколькими значениями. В нем 3...

Текст из полей textbox не вносится в шаблон word
Доброго времени суток! Ребят, помогите пожалуйста. Не вносятся данные из textbox в шаблон word. using System; using...

Почему не вносится из формы запись в базу данных?
Доброго времени суток! У меня не работает код (ниже). Заношу в форму, и при нажатии на кнопку текст не выводится на экран и не вносится в...

DateTimePicker: в БД вносится 30.12.1899, а не выставленная в компоненте дата
Здравствуйте Ув. форумчане! Вопрос по поводу компонента DateTimePicker. Почему при выставлении в нем програмнного значения системной даты в...

В ячейку Listview вносится только первая буква текста
void TDobav :: dobav () { osnova b; sscanf((char*) naim1p-&gt;Text.c_str(), &quot;%s&quot;, &amp;b.naim); sscanf((char*) country1p-&gt;Text.c_str(),...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru