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
Форумы портала PHP.SU :: Версия для печати :: Помогите с UPDATE
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Помогите с UPDATE

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

1. ginec - 19 Июня, 2011 - 12:29:10 - перейти к сообщению
Всем привет! Мне надо обновить количество товаров в заказе по 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 не работает. Гуглил, ничего нет.
Пока кроме отправки запроса по отдельности в цикле ничего не вижу. Но это очень плохо. Как быть с этим? Растерялся
Если что-то не так объяснил, то скажите. Сейчас на этом вся работа остановилась
2. altermann - 19 Июня, 2011 - 12:39:23 - перейти к сообщению
Только в цикле, я сомневаюсь что вам надо будет апдейтить поля тысячами, сервер как-нибудь переживет это Улыбка
3. ginec - 19 Июня, 2011 - 13:27:53 - перейти к сообщению
altermann, спасибо! Может и не упадет. Буду пробовать =)

 

Powered by ExBB FM 1.0 RC1