[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Построение запроса к БД используя массивы
fork
Всем привет!
Не могу правильно составить запрос:



$array1 = (1, 2, ...)
$array2 = (1, 5, ...)

//запрос нужен примерно такой:

$sql = "UPDATE `{$table}` SET `quantity` = '{$array1[]}' WHERE `order_id`='{$array2[]}'";



Помогите, пожалуйста?
Kusss

$array1 = array(1, 2, ...);
$array2 = array(1, 5, ...);

$order_id = array();
$sql = "UPDATE `$table` SET `quantity` = CASE ";
foreach ($array1 AS $key=>$value) {
$sql .= " WHEN `order_id` = '".$array2[$key]."' THEN '$value' ";
$order_id[] = $array2[$key];
}
$sql .= " END WHERE `order_id` IN (".implode(',', $order_id).")";
fork
Прошу прощения, немного не корректно написал запрос, такой должен быть:


$sql = "UPDATE `{$table}` SET `quantity` = '{$array1[]}' WHERE `order_id`='{$order_id}' AND `product_id`='{$array2[]}'";


Спасибо за помощь!
Kusss
у тебя же есть id позиции, собери массив у кого что поменять, и обнови все за раз. это будет правильнее, чем связка заказ/товар.
$array = array(
'id'=>1,
'quantity'=>2
);
fork
А можно поподробней..
Valick
Цитата (fork @ 17.07.2015 - 13:01)
А можно поподробней..

опишите подробнее, что это за массивы, что в них за информация, откуда они
и что надо обновить в таблице

_____________
Стимулятор ~yoomoney - 41001303250491
Kusss
Цитата
$array1 = (1, 2, ...)
$array2 = (1, 5, ...)
каким образом ты получаешь эти данные ?
fork
Нужно бежать, вечером опишу поподробней.
fork
Всем спасибо! Решил так:


public function edit($table,$product_quantity,$order_numb,$o_product_id) {

$sql = "";

for ($i = 0; $i < count($product_quantity); $i++) {


$sql .= "UPDATE `{$table}` SET `quantity` = '{$product_quantity[$i]}' WHERE `order_id`='{$order_numb}' AND `order_product_id`='{$o_product_id[$i]}'; ";

}

return ($this->pdo->query($sql)) ? false : 'failed to add entry';
Valick
fork, худшее решение из возможных.

_____________
Стимулятор ~yoomoney - 41001303250491
fork
Valick Буду рад увидеть альтернативу.
Valick
Цитата (fork @ 20.07.2015 - 11:51)
Буду рад увидеть альтернативу.

Для начала надо внимательно читать то, что вам пишут и отвечать на дополнительные вопросы.

_____________
Стимулятор ~yoomoney - 41001303250491
fork
Для того, чтобы оценить моё решение как худшее, у вас хватило информации, а что бы предложить альтернативу - нет. Попахивает пустословством..
Valick
fork, ок, я вас услышал, мне два раза повторять не надо, удачи.


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

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