Есть магазин на opencart. Хочу из всех заказов и зарегестрированных людей вывести все email-лы.
Но очень много дубликатов.
Как правильно сделать? Алгоритм придумал (а вот знаний не хватает)
Мое виденье
1.Вывод всех email (с бд) через do-while в массив
2. Через специальную функцию удалить дубликаты в массиве
3. Занести все email в другую базу данных.
Подскажите, пожалуйста, основные функции для этого алгоритма.
Проверка совпадений
#2
matroskin8
matroskin8
-
- Пользователь PRO
- 767 сообщений
Репутация: 143
Отправлено 24 Октябрь 2013 - 14:41
Можно сделать и так, выбрать абсолютно все email'ы в массив, а затем удалить дубликаты функцией array_unique().
А можно сделать и проще, сразу выбрав email'ы без дубликатов... для этого можно воспользоваться оператором DISTINCT в запросе, который не будет выбирать дублирующие записи:
А можно сделать и проще, сразу выбрав email'ы без дубликатов... для этого можно воспользоваться оператором DISTINCT в запросе, который не будет выбирать дублирующие записи:
SELECT DISTINCT email FROM table;
- 1
#3
alex159
alex159
-
- Пользователь
- 492 сообщений
Topic Starter
Репутация: 32
Отправлено 24 Октябрь 2013 - 18:32
matroskin8, Спасибо. Тема закрыта. Кому интересно решение вот код
Это решение сделано для Opencart, если вам нужно достать все email с вашей базы данных.
Это решение сделано для Opencart, если вам нужно достать все email с вашей базы данных.
<?php $BD_host = "myhost"; $BD_user = "user"; $BD_password = "pass"; $BD_base = "base"; $link = mysql_connect($BD_host,$BD_user,$BD_password); mysql_select_db($BD_base); mysql_query("SET NAMES 'utf8'"); $result = mysql_query("(SELECT DISTINCT `email` FROM `order`) UNION (SELECT DISTINCT `email` FROM `customer`)"); //Вытаскиеваем данные с 2-х таблиц $myrow = mysql_fetch_array($result); do{ //Делаем echo $myrow['email']; echo "<br>"; } while ($myrow = mysql_fetch_array($result));//Думаем ?>
- 0
#4
matroskin8
matroskin8
-
- Пользователь PRO
- 767 сообщений
Репутация: 143
#5
fedornabilkin
fedornabilkin
-
- Модератор
- 1 072 сообщений
Репутация: 162
Отправлено 25 Октябрь 2013 - 14:32
Еще вариант. Выбрать все записи из базы в массив и применить array_unique() http://www.php.su/array_unique
- 0
Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.
Ответить цитируемым сообщениям Очистить