Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Лишние данные в массиве
 
 автор: OLi   (22.09.2012 в 19:19)   письмо автору
 
 

После выполения запроса, которые тянет данные из трех таблиц, формируется результативный массив из строк, которые повторяются..
Как удалить повторяющиеся элементы и оставить только уникальные?

  Ответить  
 
 автор: confirm   (22.09.2012 в 19:20)   письмо автору
 
   для: OLi   (22.09.2012 в 19:19)
 

Что значит повторяется?

  Ответить  
 
 автор: OLi   (22.09.2012 в 19:24)   письмо автору
70.4 Кб
 
   для: confirm   (22.09.2012 в 19:20)
 

Вот скрин результата от запроса:

  Ответить  
 
 автор: confirm   (22.09.2012 в 19:32)   письмо автору
 
   для: OLi   (22.09.2012 в 19:24)
 

Вы вопрос как задали - "лишние данные в массиве", а результат запроса это ресурс, некоторую разницу улавливаете?
Если у вас в ресурсе полученном одинаковые записи, то в раздел MySQL со своим запросом, и что вам надо будет с ним, то-ли группировка, то-ли выборка только уникальных, разбирайтесь.
Если вы получаете массив из результата запроса, а в нем каждой записи по две, то кто вас заставляет использовать mysql_fetch_array(), или использовать ее, но неподобающим образом.

  Ответить  
 
 автор: OLi   (22.09.2012 в 19:50)   письмо автору
 
   для: confirm   (22.09.2012 в 19:32)
 

Запрос всегда будет возвращать больше одной строки с повторяющимися полями, потому как запрос составной по двум таблицам с связью по 2-м полям, поэтому вопрос стороны php, как удалить повторяющиеся элементы в массиве. Посмотите на скрин

  Ответить  
 
 автор: confirm   (22.09.2012 в 19:53)   письмо автору
 
   для: OLi   (22.09.2012 в 19:50)
 

Смотрел, и что? Вы думаете эта картинка много поясняет?

  Ответить  
 
 автор: OLi   (22.09.2012 в 20:06)   письмо автору
 
   для: confirm   (22.09.2012 в 19:53)
 

Тогда относительно картинки, скажу, что мне необходимо:
Нужно чтобы был сформирован массив примерно так:

array (

name => '1olda PARTY',
description =>  QEQE
type => 1
start_time => array ('34982893022', '2274893022'),
end_time => array ('93827573833', '34578294562') 

)

  Ответить  
 
 автор: confirm   (22.09.2012 в 20:18)   письмо автору
 
   для: OLi   (22.09.2012 в 20:06)
 

Вы бы лучше не хотения свои и следствия в виде картинок показывали, а то, что служит причиной их.
Я вам уже сказал - если это запрос возвращает дубликаты, то SELECT DISTINCT ваш запрос, вернет вам только уникальные значения.
А возможно причина не в этом, а в том, как вы получаете ресурс.
А гадать я не буду.

  Ответить  
 
 автор: Киналь   (22.09.2012 в 20:33)   письмо автору
 
   для: OLi   (22.09.2012 в 19:50)
 

array_unique()?

  Ответить  
 
 автор: confirm   (22.09.2012 в 20:34)   письмо автору
 
   для: Киналь   (22.09.2012 в 20:33)
 

А может сперва с причиной разобраться?

  Ответить  
 
 автор: Киналь   (22.09.2012 в 20:49)   письмо автору
 
   для: confirm   (22.09.2012 в 20:34)
 

Автору темы даётся классический выбор между решением проблемы «быстро» и «правильно»=)

  Ответить  
 
 автор: confirm   (22.09.2012 в 20:51)   письмо автору
 
   для: Киналь   (22.09.2012 в 20:49)
 

Решение проблемы, это нахождение причины проблемы ;)

  Ответить  
 
 автор: Киналь   (22.09.2012 в 21:24)   письмо автору
 
   для: confirm   (22.09.2012 в 20:51)
 

Не соглашусь. Задача — избавиться от повторяющихся элементов. Быстро она решается костылём в виде array_unique(), правильно — рефакторингом скрипта или вообще всей архитектуры проекта. Но решается в обоих случаях.

  Ответить  
 
 автор: confirm   (22.09.2012 в 21:30)   письмо автору
 
   для: Киналь   (22.09.2012 в 21:24)
 

Быстро в виде array_unique() она не решается, так как вообще не известно о чем речь - где та самая дыра? А "костыли", это вуалирование ошибочным решением либо, в одном случае, не знания как правильно выполнить запрос, либо, в другом случае, как правильно получить данные ресурса.

В данном случае нет задачи, а не понятно что и почему творится, и вы предлагаете не решение, а плюнуть и забыть, и "костылем" подогнать под ответ.

  Ответить  
 
 автор: Киналь   (22.09.2012 в 22:10)   письмо автору
 
   для: confirm   (22.09.2012 в 21:30)
 

> формируется результативный массив из строк
> Как удалить повторяющиеся элементы и оставить только уникальные?

Постановка задачи, которую автор не может решить. А что он не хочет искать корни проблемы — ну-у... Предложены оба варианта, а дальше каждый сам себе злобный Буратино=)

  Ответить  
 
 автор: confirm   (22.09.2012 в 22:15)   письмо автору
 
   для: Киналь   (22.09.2012 в 22:10)
 

>формируется результативный массив из строк

А вы знаете как он его формирует? Я нет. А если mysql_fetch_array() ему в этом "помогает", то при чем тут array_unique()?

Я удивляюсь, голова для чего, чтобы только кушать или еще и думать? Наверное, надо бы ему подумать и разобраться.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования