Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Запись нескольких значений через запятую
Napst3r  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 22
Пользователь №: 42366
На форуме: 10 месяцев, 25 дней
Карма:




Доброго времени суток. Имеется обработчик CSV файла, посредством которого на сайте обновляется информация. Столкнулся со следующей проблемой:

Имеется несколько строк в csv с одинаковым id, но отличающимися другими значениями:

id___id аксессуара
123__333
123__444
123__555

Если запускать обработчик, то товару с id сейчас записывается последнее значение - 555, а нужно все три через запятую.

С таблице бд у одного id, в данном случае, только одна строка и требуется товару с id 123 записать все три перечисленные значения id аксессуара через запятую, то есть вот так:

id___id аксессуара
123__333,444,555

Заранее благодарен за помощь.

Это сообщение отредактировал Napst3r - 30.09.2016 - 13:50
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25990
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 24 дня
Карма: 725

Не курю:
1 год, 2 месяца, 10 дней


<?php
//array(id,price)
$products = array(
array(1,'123.00'),
array(1,'33.00'),
array(2,'54.00'),
array(2,'12.00'),
array(4,'143.00')
);


$listProducts = array();

//Сбор
foreach($products as $k=>$v){
$listProducts[$v[0]][]=$v[1];
}

//вывод
foreach($listProducts as $k=>$v){
echo "id: ".$k." prices: ".implode(",",$v)."\r\n";
}


id: 1 prices: 123.00,33.00
id: 2 prices: 54.00,12.00
id: 4 prices: 143.00


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 18 дней
Карма: 167




Цитата (Napst3r @ 30.09.2016 - 12:50)
а нужно все три через запятую

нет не нужно
это нарушение первого закона нормализации, вы не сможете работать с этой информацией на уровне СУРБД


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25990
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 24 дня
Карма: 725

Не курю:
1 год, 2 месяца, 10 дней


Цитата
это нарушение первого закона нормализации, вы не сможете работать с этой информацией на уровне СУРБД

угу.

а если класть на нормализацию - вон решение сверху.

но я бы не клал.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Napst3r  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 22
Пользователь №: 42366
На форуме: 10 месяцев, 25 дней
Карма:




Цитата (Игорь_Vasinsky @ 30.09.2016 - 14:10)
Цитата
это нарушение первого закона нормализации, вы не сможете работать с этой информацией на уровне СУРБД

угу.

а если класть на нормализацию - вон решение сверху.

но я бы не клал.



Больше спасибо за ответ, позвольте еще один глупый вопрос -

Заменил значения переменными
//array(id,price)
$products = array(
array($item_144,$item[6]),
array($item_144,$item[6])

Но вместо того, чтобы объединить два разных значения через запятую, выводятся два первых результата, то есть не так:

id: 11218 prices: 6430856760,4234234324

а вот так

id: 11218 prices: 6430856760,6430856760
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25990
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 24 дня
Карма: 725

Не курю:
1 год, 2 месяца, 10 дней


Цитата
array($item_144,$item[6]),
array($item_144,$item[6])

так у тебя в массиве 2 одинаковых массива )


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Napst3r  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 22
Пользователь №: 42366
На форуме: 10 месяцев, 25 дней
Карма:




Цитата (Игорь_Vasinsky @ 30.09.2016 - 14:26)
Цитата
array($item_144,$item[6]),
array($item_144,$item[6])

так у тебя в массиве 2 одинаковых массива )

Может неправильно выразился. Вывожу результат обработки:
print_r($item);
echo 'sql='.$sql."<br><br>";


Вот часть:

sql=UPDATE item SET id_group=1672668245, id_phrase=6430856760, id_advert=2423201917 WHERE id=11218
sql=UPDATE item SET id_group=1672668245, id_phrase=6387850891, id_advert=2423201917 WHERE id=11218


Мне нужно чтобы в id_phrase записалось два отличающихся значения 6430856760 и 6387850891. Никак не соображу как это сделать.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса