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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
ginec
Отправлено: 19 Июня, 2011 - 12:29:10
Post Id



Новичок


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


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




Всем привет! Мне надо обновить количество товаров в заказе по id.
Таблица table
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. +--+--------+-------+---------+
  3. | id | count  | order | product|
  4. +--+--------+-------+---------+
  5. | 5  |     2    |   34   |    14    |
  6. ----------------------------------
  7. | 7  |     6    |   51   |    65    |
  8. ----------------------------------  
  9. | 11 |     1   |   34   |    24    |
  10. ----------------------------------
  11. | 23|     8    |   34   |    54    |
  12. ----------------------------------
  13.  


Тут думаю все понятно. id - id записи, count - количество в заказе, order - id заказа таблицы orders, и id товара.
Генерируется такая форма для ввода количества едениц товара в заказе.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="text" class="field" name="count[5]" value="2">
  3. <input type="text" class="field" name="count[23]" value="8">
  4. <input type="text" class="field" name="count[11]" value="1">
  5.  

count[id_записи] value="количество"
Предположим,что юзер захотел изменить количество товара в заказе
Теперь возникает вопрос "Как обновить количество товаров?"
Я сделал так

PHP:
скопировать код в буфер обмена
  1. $count = $_GET['count'];
  2.  
  3. foreach ( $count as $id=>$c ) {
  4.      $q[] = "UPDATE  `table` SET `count` = '$c' WHERE `id` = '$id'";
  5. }
  6. //вот сам запрос
  7. $query = (' UNION ', $q);


Выводит
UPDATE `table` SET `count` = '2' WHERE `id` = '5' UNION UPDATE `table` SET `count` = '8' WHERE `id` = '23' UNION UPDATE `table` SET `count` = '1' WHERE `id` = '11'

Я так понял, что UNION+UPDATE не работает. Гуглил, ничего нет.
Пока кроме отправки запроса по отдельности в цикле ничего не вижу. Но это очень плохо. Как быть с этим? Растерялся
Если что-то не так объяснил, то скажите. Сейчас на этом вся работа остановилась

(Отредактировано автором: 19 Июня, 2011 - 12:31:50)

 
 Top
altermann
Отправлено: 19 Июня, 2011 - 12:39:23
Post Id



Частый гость


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


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




Только в цикле, я сомневаюсь что вам надо будет апдейтить поля тысячами, сервер как-нибудь переживет это Улыбка


-----
Я прирожденный кузнец, я не могу не куя!
 
 Top
ginec
Отправлено: 19 Июня, 2011 - 13:27:53
Post Id



Новичок


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


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




altermann, спасибо! Может и не упадет. Буду пробовать =)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB