Запрос - ы к двум таблицам ( PDO )

Печать RSS
394

Автор
Чатланин
0
Нужно достать информацию из двух таблиц.
Таблица 1
contact
в ней 2 ячейки
name | user
в name логины друзей пользователя | в user логин пользователя.
Пример таблицы contact:
name | user
Миша | Я
Степа | Я
Рита | Я
Юля | Я
Я | Миша

и таблица users,
в ней ячейки login, gender
В login логин пользователя | в gender пол пользователя.
Пример таблицы users:
login | gender
Рита | девушка
Степа | парень
Миша | парень
Юля | девушка

Мне нужно из таблицы contact вынести пользователя, моего контакта, одного, случайно, у которого в таблице users ячейка gender = девушка.
Кто напишет рабочий запрос скину денюжку на вебмани (сто рублей) и плюс в анкету.
Автор
Чатланин
0
Хм, даже за деньги не окажете помощь?((

2000 лет д.н.э.
0
зачем из двух? твой логин и так есть, или "моего контакта" - ересь.
и плохая структура бд.
используй внешние ключи цифровые (к id родительской записи)

Веем холодом
0
лишняя трата. составь таблицу contacts

id | name | user | gender
Автор
Чатланин
0
Zдешний (14 Января 2012 / 02:12)
лишняя трата. составь таблицу contacts

id | name | user | gender
users = все пользователи
contact = контакты
Если в contact добавить ячейку gender и записывать туда пол пользователя, то
если потом пользователь сменит пол, во всех ячейках менять значение??

Добавлено через 03:13 сек.
ramzes (14 Января 2012 / 02:05)
зачем из двух? твой логин и так есть, или "моего контакта" - ересь.
и плохая структура бд.
используй внешние ключи цифровые (к id родительской записи)
я бы хотел увидеть составленный запрос.)
По мере контактирования новых пользователей туда добавятся новые записи, первый пост, пример, как держится информация в бд.
Z

Пацак
0
$arr = array();

$my_contact = mysql_query("SELECT `name` FROM `contact` WHERE `user`='Я';");

while ($my_contacts = mysql_fetch_assoc($my_contact))
{
	$pol = mysql_query("SELECT * FROM `users` WHERE `login`='".$my_contacts['name']."';");
	
	if ($pol['gender'] == 'Девушка')
	{
		$arr[] = $my_contacts['name'];
	}
}
$arr_count = count($arr);
$arr_count -= 1;

$mt = mt_rand(0,$arr_count);

echo $arr[$mt];
A

Красные штаны
0
$c=mysql_query("SELECT * FROM `contact` WHERE `user`=$user");
while($as=mysql_fetch_array($c)){
$gender=mysql_fetch_array(mysql_query("SELECT  `users` RAND(1) WHERE `login`='$as[name]' AND `gender`='Девушка'"));
$a=$as['name'];
}
echo $a;
а по хорошему лучше пользоватьзя join`aми

Добавлено через 01:37 сек.
хз мож че и намутил в скул запросе ,давно не пользовался
Изменил: An0nimous (14.01.2012 / 12:23)
Автор
Чатланин
0
Комбат (14 Января 2012 / 12:04)
$arr = array();

$my_contact = mysql_query("SELECT `name` FROM `contact` WHERE `user`='Я';");

while ($my_contacts = mysql_fetch_assoc($my_contact))
{
	$pol = mysql_query("SELECT * FROM `users` WHERE `login`='".$my_contacts['name']."';");
	
	if ($pol['gender'] == 'Девушка')
	{
		$arr[] = $my_contacts['name'];
	}
}
$arr_count = count($arr);
$arr_count -= 1;

$mt = mt_rand(0,$arr_count);

echo $arr[$mt];
сейчас попробую, если удастся сообщу в приват.
A

Красные штаны
0
8. AlyOha, мой вариант попробуй тоже если ошибки в запросе будут пиши в лс исправлю.
Автор
Чатланин
0
9. An0nimous, по очереди, если комбат не подскажет в чем дело использую твой вариант.. А то обоим платить не вариант..
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск