Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не обновляются данные в базе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
FreeRus
Отправлено: 04 Октября, 2011 - 07:16:58
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




Помогите пожалуйста!
Объясняю как должно работать! Например вбивают номер заявки и дату, но состояние еще не установлено, поэтому остается пустое. Затем утверждают состояние и необходимо обновить данные, т.е. внести изменения, дополнить!

данные почему то не обновляются((
Код файла lib_update.php:
id - номер заявки
dt - дата
name - состояние заявки

PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Обновление записей состояния заявки.</title>
  4. </head>
  5. <body>
  6. <?
  7. // Подключаемся к базе данных
  8. mysql_connect("localhost", "root", "");
  9. mysql_select_db("CTI_site");
  10.  
  11. // Если мы уже нажимали кнопку изменения записи
  12. if(@$submit_update) {
  13. // Обновляем выбранную запись
  14. $sql="update operation set id='$id', dt='$dt'
  15. where (name='$update')";
  16.  
  17. };
  18.  
  19. // Заносим в переменную <I>$result</I> всю базу оставленных сообщений
  20. $sql="select * from operation";
  21. $result=mysql_query($sql);
  22. // Узнаем кол-во записей в базе данных
  23. $rows=mysql_num_rows($result);
  24. echo "<table border=0 align=center>";
  25. echo "<tr><td align=center><B>№ Заявки</B></td>";
  26. echo "<td align=center><B>Дата</B></td>";
  27. echo "<td align=center><B>Состояние</B></td>";
  28. echo "<td align=center><B>Изменить</B></td></tr>";
  29. for($i=0;$i<$rows;$i++) {
  30. // Устанавливаем курсор на соответствующую позицию
  31. mysql_data_seek($result,$i);
  32. // Записываем в ассоциативный массив <I>$arr_guest</I>
  33. // значения полей таблицы
  34. $arr_guest=mysql_fetch_array($result);
  35. echo "<form method=get action='lib_update.php'>";
  36. echo "<input type=hidden name='update' value='".$arr_guest["name"]."'>";
  37. echo "<tr>";
  38. echo "<td><input type=text name='id' value='".$arr_guest["id"]."'></td>";
  39. echo "<td><input type=text name='dt' value='".$arr_guest["dt"]."'></td>";
  40. echo "<td><input type=text name='name' value='".$arr_guest["name"]."'></td>";
  41. echo "<td><input type=submit name='submit_update' value='Изменить'></td>";
  42. echo "</tr>";
  43. echo "</form>";
  44. };
  45. echo "</table>";
  46. echo "</form>";
  47. ?>
  48. </body>
  49. </html>


Отредактировано модератором: Мелкий, 04 Октября, 2011 - 10:20:47
 
 Top
DeepVarvar Супермодератор
Отправлено: 04 Октября, 2011 - 08:26:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




FreeRus пишет:
echo "</table>";
echo "</form>";
Ага...

echo "<";
echo "/";
echo "t";
echo "a";
echo "b";
echo "l";
echo "e";
echo ">";
.........

Хоть бы код оформили, не понятно ничего..

И mysql_error в помощь
 
 Top
FreeRus
Отправлено: 04 Октября, 2011 - 09:43:45
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




в том то и дело что ошибки не выдает никакой
 
 Top
Мелкий Супермодератор
Отправлено: 04 Октября, 2011 - 10:24:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Код явно ориентирован на работу с глобальными переменными. Проще говоря, его надо выкидывать.
http://php.su/security/?globals


-----
PostgreSQL DBA
 
 Top
FreeRus
Отправлено: 04 Октября, 2011 - 11:10:49
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




А вот этот посмотрите код, такая же проблема!

PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Обновление записей состояния заявки.</title>
  4. </head>
  5. <body>
  6. <?PHP
  7. // Выполнение SQL-запроса и проверка ошибки
  8. function sql($cmd) {
  9. $d = mysql_query($cmd);
  10. if(mysql_errno()) throw new Exception(mysql_error());
  11. return $d;
  12. }
  13.  
  14. // Вывод текста
  15. function escape($n) {
  16. return str_replace(Array("'",'"'),Array("&#x27;","""),htmlspecialchars($n));
  17. }
  18.  
  19. // Получение парематра запроса
  20. function postVar($sost) {
  21. global $HTTP_POST_VARS;
  22. $a = @$HTTP_POST_VARS[$sost].'';
  23. if(get_magic_quotes_gpc()) $a = stripslashes($a);
  24. $a = preg_replace('#%u([0-9A-F]{4})#se','iconv("UTF-16BE","UTF-8",pack("H4","$1"))', $a);
  25. return $a;
  26. }
  27.  
  28. // Подключаемся к базе данных
  29. mysql_connect("localhost", "cms", "1537320098");
  30. mysql_select_db("CTI_site");
  31.  
  32.  
  33. // Если мы нажали кнопку изменения записи
  34. if(postVar('cmd')=='update') {
  35. // Обновляем выбранную запись (Обязательно используем mysql_escape_string)
  36. $p_id = mysql_escape_string(postVar('id'));
  37. $p_dt = mysql_escape_string(postVar('dt'));
  38. $p_sost = mysql_escape_string(postVar('sost'));
  39. $p_uid = mysql_escape_string(postVar('uid'));
  40. $sql("update operation1 set id='$p_id', dt='$p_dt', sost='$p_sost' where uid='$p_uid'");
  41. // Для редактирования записи всегда используем поле типа int primary key auto_increment
  42. };
  43.  
  44. // Шапка таблицы
  45. echo "<table border=0 align=center>";
  46. echo "<tr><td align=center><B>№ Заявки</B></td>";
  47. echo "<td align=center><B>Дата</B></td>";
  48. echo "<td align=center><B>Состояние</B></td>";
  49. echo "<td align=center><B>Изменить</B></td></tr>\r\n";
  50.  
  51. // Получаем все поля таблицы
  52. $dataset = sql("select uid,id,dt,sost from operation1");
  53. for($i=0; $arr_guest=mysql_fetch_array($dataset); $i++) {
  54. // Параметры для HTML-кода
  55. $p_uid = escape($arr_guest["uid"]);
  56. $p_id = escape($arr_guest["id"]);
  57. $p_dt = escape($arr_guest["dt"]);
  58. $p_sost = escape($arr_guest["sost"]);
  59.  
  60. // HTML-код (Стараемся отделить HTML-код максимально от программы).
  61. echo "<form method=post action='2.php'>";
  62. echo "<input type=hidden name='cmd' value='update'>";
  63. echo "<input type=hidden name='uid' value='$p_uid'>";
  64. echo "<tr>";
  65. echo "<td><input type=text name='id' value='$p_id'></td>";
  66. echo "<td><input type=text name='dt' value='$p_dt'></td>";
  67. echo "<td><input type=text name='sost' value='$p_sost'></td>";
  68. echo "<td><input type=submit value='Изменить'></td>";
  69. echo "</tr>";
  70. echo "</form>\r\n";
  71. };
  72.  
  73. // Подвал таблицы
  74. echo "</table>";
  75. ?>


Отредактировано модератором: Мелкий, 04 Октября, 2011 - 11:20:31
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB