[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: что использовать в запросе foreach или ...
logic
Подскажите пожалуйста.
Есть
$arr = ["1","2","3"....."700"]
мне надо обновить значения в таблице `table_name`, id которого равно каждому из значений массива? Что в таком случае НОРМАЛЬНЫЕ люди используют?:) foreach ?
foreach($arr as $key=>$value) {
mysql_query("UPDATE `table_name` SET `col_name` = '".$value."' WHERE `id` = '".$key."'");
}

но это 700 запросов к БД,
или так никто не делает?

спасибо!
killer8080
mysql_query("UPDATE `table_name` SET `col_name` = '".$value."' WHERE `id` IN (".implode(',', $key).")");




Спустя 1 минута, 4 секунды killer8080 написал(а):
Цитата (logic @ 26.11.2012 - 17:18)
$arr = ["1","2","3"....."700"]

PHP5.4?
logic
killer8080
PHP Version 5.3.14

если как ты предложил, то обновятся все строчки одним и тем же значением.
killer8080
Цитата (logic @ 27.11.2012 - 00:11)
PHP Version 5.3.14

тогда что это за синтаксис? Он был введен только в версии 5.4
$arr = ["1","2","3"....."700"]

Цитата (logic @ 27.11.2012 - 00:11)
если как ты предложил, то обновятся все строчки одним и тем же значением.

Ну да, а где в твоем массиве ключи? Что и как должно заполнятся?
logic
извини, сейчас исправлюсь:
у меня есть массив значений
$ids = Array('1','2','5','7','12',....700)

значения массива соответствуют значениям поля id в таблице `pricelist`
таблица pricelist имеет 2 поля: id и price
мне надо обновить все поля `price` (взять текущее значение и увеличить на 20%) WHERE id = перебор значений массива $ids

Valick
взять текущее значение и увеличить на 20%
с этого и надо начинать...
только пишите обновить price, а обновляете col_name, где логика?
"UPDATE `table_name` SET `price` = (`price`/100)*20+`price` WHERE `id` IN (".implode(',', $ids).")"

кстати откуда $ids? может там и проще можно сделать, без лишних телодвижений с implode()

_____________
Стимулятор ~yoomoney - 41001303250491
logic
отлично ))) по-моему то что надо wink.gif. завтра попробую и отпишусь.

$ids приходит через ajax из js script'а, там я его через push наполняю значениями.

СПАСИБО
inpost
Valick
`price` = `price`* 1.2 smile.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Valick
inpost, ну посмотрите на время сообщения, я после того как порвали Орду на Альтераке "родил" только классику smile.gif
Главное принцип, а уж с математическими формулами ТС сам как-нибудь smile.gif

_____________
Стимулятор ~yoomoney - 41001303250491
inpost
Valick
Элементарное всегда рядом.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
killer8080
logic
не забывай про безопасность, все элементы массива нужно привести к int.
logic
да ребят, все учту....я просто про безопасность тут не стал парить вас, это все сделаю! Спасибо за помощь! всем по + wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.