@emerysh

Как выводить csv to mysql, найменьшее значение, не работает?

Суть в следующем у меня в распоряжении массив который я получил из csv
$data;

#Дальше я прогоняю каждую строчку массива через foreach
foreach($data as $item) {
#Дальше каждая ячейка как индекс и значение
foreach ($item as $key => $value) 
#если индекс равно 11
if ($key == 11 ) {
#Пропускаем первую строчку		    		
if ($value == name_en) {
}
#заносим в переменную значение
else{
$name = $value;			    		
}

if ($key == 2 ) {
if ($value == price) {
# code...
}
else{
$price = $value;
}
}
}
#проводим операции с переменными
$name;
$price;
#заносим в бд
mysqli_query($link, "UPDATE `price` SET `cprice`='$price' WHERE `itemname`='$name'"); 
}


Проблема в том что в таблице могут повторяться предметы ($name) но с разными ($price) и в бд заносится лишь последнее, а нужно что бы заносилось минимальное значение. Спасибо всем
  • Вопрос задан
  • 244 просмотра
Пригласить эксперта
Ответы на вопрос 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Проблема в том что в таблице могут повторяться предметы ($name) но с разными ($price) и в бд заносится лишь последнее, а нужно что бы заносилось минимальное значение.

Значит сначала нужно собрать все данные для записи в базу
$tmp = [];
foreach ($data as $item) {
   if (!isset($tmp[$item->name])) {
      $tmp[$item->name] = $item->price;
   } else {
      if ($item->price < $tmp[$item->name]) $tmp[$item->name] = $item->price;
   }
}

и дальше уже этот массив скармливать в update
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы