Перейти к содержимому



Проверка совпадений

#1 alex159
alex159
  • Пользователь
  • 495 сообщений
  • Репутация: 35
0

Обновлено 25 октября 2013 - 14:32  Отправлено 24 октября 2013 - 13:38

Есть магазин на opencart. Хочу из всех заказов и зарегестрированных людей вывести все email-лы.
Но очень много дубликатов.
Как правильно сделать? Алгоритм придумал (а вот знаний не хватает)

Мое виденье
1.Вывод всех email (с бд) через do-while в массив
2. Через специальную функцию удалить дубликаты в массиве
3. Занести все email в другую базу данных.

Подскажите, пожалуйста, основные функции для этого алгоритма.

 

 

  • 0

#2 matroskin8
matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 24 октября 2013 - 14:41

Можно сделать и так, выбрать абсолютно все email'ы в массив, а затем удалить дубликаты функцией array_unique().
А можно сделать и проще, сразу выбрав email'ы без дубликатов... для этого можно воспользоваться оператором DISTINCT в запросе, который не будет выбирать дублирующие записи:
SELECT DISTINCT email FROM table;

  • 1


#3 alex159
alex159
    Topic Starter
  • Пользователь
  • 495 сообщений
  • Репутация: 35

Отправлено 24 октября 2013 - 18:32

matroskin8, Спасибо. Тема закрыта. Кому интересно решение вот код
Это решение сделано для 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

Отправлено 24 октября 2013 - 21:42

Пожалуйста.
  • 0


#5 fedornabilkin
fedornabilkin
  • Модератор
  • 1 190 сообщений
  • Репутация: 206

Отправлено 25 октября 2013 - 14:32

Еще вариант. Выбрать все записи из базы в массив и применить array_unique() http://www.php.su/array_unique
  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.





Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
Megoydagi Megoydagi 1-й за Август
Очков активности: 30 4 темы, 8 сообщений, 1 балл репутации
Сайт: bank.net.ru
ТОП самых активных за этот месяц
  • Фотография Vmir
    #1

    Vmir
    Очков активности: 22.5 3 темы, 6 сообщений, 1 балл репутации

  • Фотография kuztoday
    #2

    kuztoday
    Очков активности: 10.5 1 тема, 4 сообщения, 1 балл репутации

  • Фотография mkreine
    #3

    mkreine (analiz-krovi.net)
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография kolver
    #4

    kolver
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография Megoydagi
    #5

    Megoydagi (bank.net.ru)
    Очков активности: 9 Вне конкурса за определение пользователя месяца

  • Фотография Totti
    #6

    Totti
    Очков активности: 7.5 0 тем, 5 сообщений, 1 балл репутации

  • Фотография BLIK
    #7

    BLIK
    Очков активности: 7.5 Вне конкурса за определение пользователя месяца

  • Фотография Zevss
    #8

    Zevss (domles43.ru)
    Очков активности: 6 1 тема, 1 сообщение, 1 балл репутации

  • Фотография fedornabilkin
    #9

    fedornabilkin (plohoneponyal.ru)
    Очков активности: 6 1 тема, 1 сообщение, 1 балл репутации

  • Фотография SergiuS85
    #10

    SergiuS85
    Очков активности: 6 1 тема, 1 сообщение, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru