INSET связать 2 таблицы

AKAPE

Новичок
INSET связать 2 таблицы

Здравствуйте, столкнулся с таким вопросом:
есть 2 таблички, в одной хранится инфа на пользователя, его логин, ID итд, ... во второй табличке(предназначеной, как список контактов) всего 2 колонки id того ЧЬЯ запись, и ID того кого нужно хрнаить в контакт листе. помогите пожалуйста составить запрос на добавление и удаление юзера из листа, если заранее мы знаем только логины (немогу понять, как связать 2 табоички в таких запросах):(
 

fixxxer

К.О.
Партнер клуба
select blablabla from table1, table2 where table1.id=table2.id and blablabla
это тебе надо чтоли? :D
 

Falc

Новичок
AKAPE
INSERT INTO contact
SELECT u1.id, u2.id
FROM user u1, user u2
WHERE u1.login = $login1 AND u2.login = $login2

DELETE contact
FROM contact
JOIN user u1 ON u1.id = contact.user1
JOIN user u2 ON u2.id = contact.user2
WHERE u1.login = $login1 AND u2.login = $login2
 

AKAPE

Новичок
Falc, огромное спасибо! :)

-~{}~ 12.03.04 20:51:

что-то запутался, да и вышло запутано, не работает проверка занесен ли уже ник в контакт лист, мне кажеться у меня вообще подход не тот. помогите пожалуйста

PHP:
$db_lnk=db_connect();
		if(!$res=@mysql_query("SELECT id FROM user_info WHERE nick='".mysql_escape_string($_GET['nick'])."' LIMIT 1")){
			err(mysql_error(),__FILE__,__LINE__);
		}
		if(!@mysql_num_rows($res)){
			alert("пользователь ".$_GET['nick']." не зарегистрирован");
		}
		if(!$res=@mysql_query("SELECT c.uid FROM user_contacts c, user_info i WHERE (c.uid=i.id AND i.nick='".mysql_escape_string($_SESSION['nick'])."') AND (c.buddy=i.id AND i.nick='".mysql_escape_string($_GET['nick'])."') LIMIT 1")){
			err(mysql_error(),__FILE__,__LINE__);
		}
		alert(mysql_result($res,0));
		if(!@mysql_num_rows($res)){
			if(!@mysql_query("INSERT INTO user_contacts SELECT myself.id, buddy.id, 0 FROM user_info myself, user_info buddy WHERE myself.nick='".mysql_escape_string($_SESSION['nick'])."' AND buddy.nick='".mysql_escape_string($_GET['nick'])."'")){
				err(mysql_error(),__FILE__,__LINE__);
			}
		}
		@mysql_close($db_lnk);
 

Falc

Новичок
AKAPE
Зря ты такой код запостил, если это увидит Фанат, он причислит тебя к сабаководам любителям.

Мне лично лень разбираться в твоем коде, пиши что конкретно не понятно. Я привел два четких запроса, которые делают то что ты просил. А писать за тебя скрипты я думаю никто не будет.
Кстати запрос на удаление будет работать только в 4-ом MySQL'е.
 

AKAPE

Новичок
Falc

Да, самое обидное, что на PHP пишу уже 2-ой год, а с базами данных никогда не работал. Мануал пхп-шный сделан грамотно, разбит по категориям с коментами приличными, а муськин все в одном файле и скроль до посинения. Понял свою ошибку, действительно у меня стоит Mysql 3.23. Поэтому и не джойнит. Почитал далее - 3-тьи версии даже саб-квери не поддерживают и как реализовать подобный Дэлит кроме как 3-мя запросами ума не приложу....
 

AKAPE

Новичок
спасибо.
выходит только 3-мя запросами прийдеться делать. А жаль. не люблю таких извращений.
 

Falc

Новичок
AKAPE
>>не люблю таких извращений.
Тогда меняй провайдера :)
Или пиши на супорт пусть мускул обновят.
 

AKAPE

Новичок
они конечно же за 50 долларовый аккаунт (в год) так разгон взяли и каак побежали мускль апгрейдить. А какая сейчас ситуация на рынке хостеров, какое примерное соотношение тех у кого 4-ки к тем у кого 3-ки, не подскажите?
 

Апельсин

Оранжевое создание
AKAPE, версия 4.0 уже год как stable и это в их же интересах его обновить. Предложить им это тебе ведь никто не мешает?
 

AKAPE

Новичок
конечно же попробую. Просто сам проект должен был быть закончен еще позавчера. Всем спасибо, тему можно закрыть :)
 
Сверху