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 :: Функция UPDATE

 PHP.SU

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


 Страниц (4): [1] 2 3 4 »   

> Без описания
master_igor
Отправлено: 25 Февраля, 2010 - 11:26:35
Post Id


Новичок


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


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




Здравствуйте! Памогите пожалуйста с кодом. Суть в следующем. Есть база с данными и при просмотре их через браузер есть возможность редактировать при помощи функции UPDATE. У меня вроде все нормально выходит безошибки но данные не меняються в базе хоть тресни. Что то я упустил но не могу найти что именно

код странички:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <form method='POST'>
  2. <input type='submit' name='comps' value='Компы'>
  3. </form>
  4. </div>
  5. </div>
  6.  
  7. <div id="primaryContentContainer">
  8.                         <div id="primaryContent">
  9. <?php
  10.                 /*Выводяться данные из таблицы Кейсов*/
  11. if(isset($_POST['comps'])) /*Если есть переменная comps то выводим список из таблицы данные*/
  12. {
  13. $result = mysql_query ("SELECT * FROM comps",$db);
  14. $myrow = mysql_fetch_array($result);
  15. do
  16. {    
  17. printf  ("Кейс № - %s<br>%s<br>%s<br>%s<br><br><br>",$myrow['id'],$myrow['inventary'],$myrow['parameters'],$myrow['user']."<form method='POST'><input type='submit' name='edit' value='Редактировать'></form>");
  18. }
  19. while ($myrow = mysql_fetch_array($result));
  20. }
  21. if(isset($_POST['edit'])) /*Если есть переменная edit тогда выводим таблицу редактирования данных*/
  22. {
  23.         /*Форма Добавление данных*/
  24. print "         <form method='POST'>
  25.        <h2>Поле для ввода кейсов</h2>
  26.                 <p>Введите Инвентарный номер вашего кейса:<br>
  27.                 <input name='inventary' type='text' size='50' maxlength='100'></p>
  28.                 <p>Введите Параметры вашего кейса:<br>
  29.                 <input name='parameters' type='text' size='50' maxlength='100'></p><br>
  30.                 <p>Введите имя пользователя у которого будет стоять это оборудование:
  31.                <input name='user' type='text' size='50' maxlength='100'></p><br>
  32.                 <p>ID который вы хотите поменять:
  33.                 <input name='id' type='text' size='50' maxlength='100'></p><br>
  34.                <input type='submit' value='Занести'>
  35.                 </form>";
  36. }                
  37.  
  38.         /*Проверяем правильность ввода данных формы кейсов и если правильно начинаем редактировать базу данных*/
  39.  
  40. if(isset($_POST['inventary']) && ($_POST['parameters']) &&($_POST['user']) &&($_POST['id']))
  41. {
  42.         $inventary = $_POST['inventary'];
  43.         $parameters = $_POST['parameters'];
  44.         $user = $_POST['user'];
  45.         $id = $_POST['id'];
  46. $result = mysql_query("UPDATE comps SET(inventary,parameters,user) VALUES ('$inventary','$parameters','$user') WHERE id=.'$_POST'['id']",$db);
  47. if ($result == 'true')
  48. {
  49. echo "Данные кейсов изменнены в базе данных успешно!<br>";
  50. echo "<a href='add.php'>Данные внесены можете вернуться назад</a>";                                      
  51. }
  52. else
  53. {
  54. echo "Данные кейсов небыли изменены в базе данных!<br>";
  55. echo "<a href='add.php'>Данные не внесены попробуйте еще раз</a>";
  56. }
  57. }


Отредактировано модератором: Champion, 25 Февраля, 2010 - 11:55:48
 
 Top
biperch
Отправлено: 25 Февраля, 2010 - 11:36:37
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


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




master_igor пишет:
$result = mysql_query("UPDATE comps SET(inventary,parameters,user) VALUES ('$inventary','$parameters','$user') WHERE id=.'$_POST'['id']",$db);

неправильно ты дядя федор бутерброд еш
UPDATE comps SET inventar='хз', inventar2='хз' WHERE id='хз'
(Добавление)
Ты апдейт с инсертом попутал
(Добавление)
чуству ща Чемпион что то напишет ждем.............
(Добавление)
не дождались
 
 Top
master_igor
Отправлено: 25 Февраля, 2010 - 11:52:51
Post Id


Новичок


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


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




подскажи что именно я не так делаю? в каком месте?
 
 Top
Champion Супермодератор
Отправлено: 25 Февраля, 2010 - 11:58:38
Post Id



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


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


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




biperch пишет:
чуству ща Чемпион что то напишет ждем
Давай напишу.
master_igor, воспользуйся функцией mysql_error() после апдейта и вспомни синтаксис. И прочитай http://phpfaq[dot]ru/debug
 
 Top
master_igor
Отправлено: 25 Февраля, 2010 - 12:03:41
Post Id


Новичок


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


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




Champion пишет:
master_igor, воспользуйся функцией mysql_error() после апдейта и вспомни синтаксис. И прочитай http://phpfaq.ru/debug


ошибки нету некакой. просто возвращаеться лож и говорит что баннае не изменены.
выходит вот этот кусочек кода : else
{
echo "Данные кейсов небыли изменены в базе данных!<br>";
echo "<a href='add.php'>Данные не внесены попробуйте еще раз</a>";
 
 Top
Champion Супермодератор
Отправлено: 25 Февраля, 2010 - 12:06:00
Post Id



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


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


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




master_igor пишет:
просто возвращаеться лож
Значит ошибка есть. И почему ты сравниваешь это со строкой 'true' ? Прочитай про типы данных в ПХП. И покажи как ты воспользовалсz mysql_error
 
 Top
biperch
Отправлено: 25 Февраля, 2010 - 12:11:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


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




CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
  3.     SET col_name1=expr1 [, col_name2=expr2, ...]
  4.     [WHERE where_definition]
  5.     [LIMIT #]
  6.  
  7.  

синтаксис команды апдейт ни на что не наталкиват

(Отредактировано автором: 25 Февраля, 2010 - 12:13:31)

 
 Top
master_igor
Отправлено: 25 Февраля, 2010 - 13:44:27
Post Id


Новичок


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


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




Champion пишет:
master_igor пишет:
просто возвращаеться лож
Значит ошибка есть. И почему ты сравниваешь это со строкой 'true' ? Прочитай про типы данных в ПХП. И покажи как ты воспользовалсz mysql_error



прочитал вашу ссълку. поробовал отладить как там написано. ошибки не выдаети вроде все переменные присваиваються. но код не отрабатывает Огорчение
(Добавление)
biperch пишет:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
  3.     SET col_name1=expr1 [, col_name2=expr2, ...]
  4.     [WHERE where_definition]
  5.     [LIMIT #]
  6.  
  7.  

синтаксис команды апдейт ни на что не наталкиват


и что мне делать? пытался разобраться в том что вы написали но как то без результатно.
 
 Top
Viper
Отправлено: 25 Февраля, 2010 - 14:10:37
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




master_igor синтаксис UPDATE поменяли ?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
biperch
Отправлено: 25 Февраля, 2010 - 17:10:07
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


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




твой вариант:
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("UPDATE comps SET(inventary,parameters,user) VALUES ('$inventary','$parameters','$user') WHERE id=.'$_POST'['id']",$db);


мой, тот что выше
PHP:
скопировать код в буфер обмена
  1. mysql_query("UPDATE comps SET inventar='$inventary', parameters='$parameters', user='$user'  WHERE id='".$_POST'['id']."', $db)

master_igor---- а теперь найди 10 отличий
А то я уже не знаю как сказать
(Добавление)
Viper пишет:
master_igor синтаксис UPDATE поменяли ?

я это с утра пытаюсь выяснить Ха-ха
 
 Top
JustUserR
Отправлено: 25 Февраля, 2010 - 18:52:39
Post Id



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


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


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




master_igor Вы путаете команды INSERT и UPDATE - ведь во второй из них обязательно меняются далеко не все SQL-поля а также есть возможность выборки
Уж определитесь что именно вам нужно


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
master_igor
Отправлено: 26 Февраля, 2010 - 10:07:11
Post Id


Новичок


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


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




biperch пишет:
твой вариант:
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("UPDATE comps SET(inventary,parameters,user) VALUES ('$inventary','$parameters','$user') WHERE id=.'$_POST'['id']",$db);


мой, тот что выше
PHP:
скопировать код в буфер обмена
  1. mysql_query("UPDATE comps SET inventar='$inventary', parameters='$parameters', user='$user'  WHERE id='".$_POST'['id']."', $db)

master_igor---- а теперь найди 10 отличий
А то я уже не знаю как сказать
(Добавление)
Viper пишет:
master_igor синтаксис UPDATE поменяли ?

я это с утра пытаюсь выяснить Ха-ха


Уважаемай biperch я сделал все как вы сказали но код все равно отказываеться работать. перепробовал все но данные так и не меняються. Огорчение
 
 Top
JustUserR
Отправлено: 26 Февраля, 2010 - 11:43:22
Post Id



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


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


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




master_igor пишет:
Перепробовал все но данные так и не меняються
А сам инедтификатор ID по которому осуществляется поиск записи для изменения верно передается - выведите его с помощью echo и посмотрите и сколькол вообще affected rows
Цитата:
if ($result == 'true')
Странное сравнение - мало то что result это ресурс так еще и сравниваете не с истинностью а со строкой 'true' - лучше проверьте mysql_num_rows


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
biperch
Отправлено: 26 Февраля, 2010 - 20:57:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


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




master_igor пишет:

мой, тот что выше
PHP:
скопировать код в буфер обмена

1.
mysql_query("UPDATE comps SET inventar='$inventary', parameters='$parameters', user='$user' WHERE id='".$_POST'['id']."', $db)

я твой код скопировал и переделал и твою ошибку не заметил (после $_POST кавычку убрать надо)
а на будущее после mysql_*******() or die(mysql_error()); тут сразу видно где ошибка и какая
 
 Top
master_igor
Отправлено: 26 Февраля, 2010 - 21:06:40
Post Id


Новичок


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


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




biperch пишет:
master_igor пишет:

мой, тот что выше
PHP:
скопировать код в буфер обмена

1.
mysql_query("UPDATE comps SET inventar='$inventary', parameters='$parameters', user='$user' WHERE id='".$_POST'['id']."', $db)

я твой код скопировал и переделал и твою ошибку не заметил (после $_POST кавычку убрать надо)
а на будущее после mysql_*******() or die(mysql_error()); тут сразу видно где ошибка и какая


Уважаемый biperch я не про ошибки говорю. ошибки я то исправил, это сразу денвер показал. Я говорю про код он не хочет изменять данные. ошибок нет их я исправляю. странность в том что данные в таблице не меняются. и переменная id тоже вроде передаеться да и все переменные тагже передаються. но код не работает
 
 Top
Страниц (4): [1] 2 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB