Результат дедупликации mysql с использованием PHP - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть таблица с записями, такими как:

123 (DVD)

123 [DVD] [2007]

125 [2009]

189 (CD)

когда я представляю их пользователю в поле автозаполнения, я убираю что-либо между () или [], поскольку они не имеют значения, но, как вы можете видеть из приведенного выше списка, у меня остаются две записи для 123, которые появляются в раскрывающемся списке ... есть ли еще способ подавить дубликаты? Иногда может быть целых 5 или 6, что выглядит неправильно, если не сказать больше! Код ниже:

    // db select
    $query = "SELECT $title FROM PRprodINFO2 WHERE ((prodcatID = '$cat_id') AND ($title LIKE \"%" . $_GET["q"] . "%\")) group by $title LIMIT 8"; 

$result = mysql_query($query);

$output_items = array();

// while loop to print results
    while($row = mysql_fetch_array($result)) { $output_items[] = $row[$title]; } 

$output_items = preg_replace('/\[.*?\]|\s*/', '', $output_items); // remove [blah]

$output_items = preg_replace('/\(.*?\)|\s*/', '', $output_items); // remove (blah)

    print(implode("\n", $output_items));

Большое спасибо

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

Функция array_unique() удаляет повторяющиеся значения из массива, в вашем случае массив $output_items.

Посмотрите на http://php.net/manual/en/function.array-unique.php

0 голосов
/ 05 декабря 2011

Вы можете использовать array_unique ( array $array ), чтобы удалить все дубликаты перед взрывом.

...