Цыкл FOR "с прыжками"

DataKill

Новичок
Цыкл FOR "с прыжками"

Строю запрос на добавление данных в БД:

PHP:
$sql="INSERT INTO `price_kitchen` (`target_name`, `price_cat`, `price_name`, `cost`) VALUES ";

for($a=0; $a<count($arr_kitchen); $a){
  $sql="('".$header."','".$arr_kitchen[0]."','".$arr_kitchen[1]."',".$arr_kitchen[2].")";
}
Цыкл $arr_kitchen состоит элементов, которые делятся на 3 (6,9,12,15....)
Нужно сделать так, что бы в каждой строчьке sql на добавление ('$header','$arr_kitchen[0]', '$arr_kitchen[1]', $arr_kitchen[2]); были первых три элемента масива, далее, на втором кругу ('$header','$arr_kitchen[3]', '$arr_kitchen[4]', $arr_kitchen[5]);
И так далее....

Что можете подсказать?
 

Wicked

Новичок
лучше сделай вложенные массивы
PHP:
foreach($arr as $subarr) {
  $sql = "('".$header."','".$subarr['price_cat']."','".$subarr['price_name']."',".$subarr['cost'].")"
}
-~{}~ 17.02.09 19:11:

еще почитай http://phpfaq.ru/slashes
 

DiMA

php.spb.ru
Команда форума
> Можешь расазать каким образом?

Сидишь молча и зубришь мануал по указанной функции. И думаешь, каким макаром он касется твоего вопроса.

> Цыкл

Кыев

вместо "$sql=" - "$sql[]=" и в конце строки запятую, чтобы получилось так, с implode(",", $sql)

INSERT INTO `price_kitchen` (`target_name`, `price_cat`, `price_name`, `cost`) VALUES
(a1,b1,c1,d1),
(a2,b2,c2,d2),
...
 

DataKill

Новичок
Всем спасибо. Проблемма решенна:
$sql2="INSERT INTO `price_bar` (`target_name`, `price_cat`, `price_name`, `cost`) VALUES ";
$triples2=array_chunk($arr_bar,3);
for($a=0; $a<count($triples2); $a++){
$sql2.="('".$header."','".$triples2[$a][0]."','".$triples2[$a][1]."',".$triples2[$a][2].")";
if($a<(count($triples2)-1)){
$sql2.=", ";
}else{
$sql2.=";";
}
}
 

DiMA

php.spb.ru
Команда форума
Использовать лишний IF для проверки и лишние 5 строук кода - нужно ли дописывать запятую - это тупизм.
Оптимальнее: $sql[]=...; implode(", ", $sql).
Хотя, если тебе платят за каждую строку кода...
 

DiMA

php.spb.ru
Команда форума
строк - это очепятка от попадания пальца на 2 клавиши сразу
а цЫкл - это да... и придумал его не я, а коллега из кЫева .-)
 

DataKill

Новичок
Ага. Бывает. Спасибо. Просто пишу это все с ангиной... температура.. ну и все такое...
 
Сверху