SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.05.2012 15:51:35

in9emix
Завсегдатай
Зарегистрирован: 20.04.2012
Сообщений: 37

Сравнение 2 таблиц с юзерами и выборка одинаковых в массив

Всем добрый вечер, столкнулся с проблемой и долго уже не могу её решить, подскажите пожалуйста.
Есть 2 таблицы с пользователями. Я вытащил в массив имена всех пользователей из 1ой и из 2ой таблицы.
Использовал для этого do while и через echo крикнул всех пользователей...всё нормально.

А теперь как только не пробовал через do while и if else вытащить похожие имена...ничего не получается(


Труднее всего заработать первый миллион долларов. Аристотель Онассис

Неактивен

 

#2 07.05.2012 15:54:46

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Сравнение 2 таблиц с юзерами и выборка одинаковых в массив

С такой формулировкой остаётся лишь пожелать удачи в бою wink. Если приведете таблицы, запросы, код - может быть получится больше сказать. В частности расшифровка понятия "похожие имена" нужна.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 07.05.2012 16:09:26

in9emix
Завсегдатай
Зарегистрирован: 20.04.2012
Сообщений: 37

Re: Сравнение 2 таблиц с юзерами и выборка одинаковых в массив

Сори, я думал все ясно... ну вот:
вытаскиваем имена всех юзером из 1ой таблицы в массив
$result = mysql_query("SELECT name FROM users1",$db);
$myrow =  mysql_fetch_array($result);
do {
    echo "".$myrow['name ']."";
}
while ($myrow = mysql_fetch_array($result));

вытаскиваем имена всех юзером из 2ой таблицы в массив
$result2 = mysql_query("SELECT name FROM users2",$db);
$myrow2 =  mysql_fetch_array($result2);
do {
    echo "".$myrow2['name ']."";
}
while ($myrow2 = mysql_fetch_array($result2));

И вот дальше хочу вытащить все имена из 2ой таблицы, которые есть так же в 1ой.
Например если в массиве $myrow2['name '];  встречаются имена такие же как и в $myrow['name ']; то вытаскиваем их в массив.


Труднее всего заработать первый миллион долларов. Аристотель Онассис

Неактивен

 

#4 07.05.2012 16:12:50

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Сравнение 2 таблиц с юзерами и выборка одинаковых в массив

Вы не привели код, с помощью которого объединяете массивы. Ваш код просто выводите на экран имена. Но вообще я бы скорее так сделал: $result = mysql_query("SELECT name FROM users1 union SELECT name FROM users2",$db);


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 07.05.2012 16:16:57

in9emix
Завсегдатай
Зарегистрирован: 20.04.2012
Сообщений: 37

Re: Сравнение 2 таблиц с юзерами и выборка одинаковых в массив

Я не объединял пока что...в просто вытащил  из 1ой имена в 1 массив и из 2о1 таблицы во 2ой массив...сейчас попробую как вы предложили...Я что то забыл совсем про union )

Отредактированно in9emix (07.05.2012 16:17:15)


Труднее всего заработать первый миллион долларов. Аристотель Онассис

Неактивен

 

#6 07.05.2012 17:21:56

in9emix
Завсегдатай
Зарегистрирован: 20.04.2012
Сообщений: 37

Re: Сравнение 2 таблиц с юзерами и выборка одинаковых в массив

Всё получилось, а можно ли как нибудь сделать исключения? Например я не хочу что бы какое то имя...например администратора выводилось в массив... Возможно ли так сделать? Я думаю LIMIT тут не к месту...


Труднее всего заработать первый миллион долларов. Аристотель Онассис

Неактивен

 

#7 07.05.2012 20:57:55

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Сравнение 2 таблиц с юзерами и выборка одинаковых в массив

limit - не для исключений. Исключение можно задать через where, например так:

SELECT `name` FROM `users1` WHERE `name` <> 'root' UNION SELECT `name` FROM `users2` WHERE `name` <> 'root'


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson