INSERT AND SELECT one query?

macmen

Registered
Здравейте имам следния въпрос:

как ще стане ако INSERT и SELECT са в една заяква и вече има същесвуващ такав запис да не попълва инфорамацията отново. С две думи да няма повтарящи user в една таблица

Благодаря предварително!
 
може но как е точно не знам защото ми попълва една и съща информация отново и отново а аз не искам това искам само един път да я попълни
 
$q = "REPLACE INTO ".TBL_FRIENDS."
(username,friends)
SELECT rs_username,rs_friends
FROM ".TBL_FRIENDS_REQUEST."
WHERE not exists (select * from ".TBL_FRIENDS."
where username = '$username' AND friends='$fr' )";
$mysql->query($q,$mysql->connection);


това е заяквата и постоянно ми попълва една и съща информация
 
Не мога да се досетя какво точно се опитваш да направиш с INSERT и SELECT едновремено , но за да не ти натрупва полетата Вместо INSERT пробвай с UPDATE .
 
искам да вмъквам записи в БД в една таблица но искам да проверява дали дадения запис го има в таблица и ако го има да не го вмъква. За това се прави в една заявка, защото проверката с php е ненадежна така я дават. А като е с sql дублирането на имена е почти невъзножно докато при php е възможно(ако при регистрация двама потребителя с едно и също потребителско име се опитват да се регисрират с php проверката може да не свърши работа докато при mysql ще изведе грешка и на дваамата потребителя)
 
Ако цялото това нещо е за да няма двама регистрирани потребители с едно и също име аз използвам това:
Код:
$q = mysql_query("SELECT username FROM users WHERE username='$name' LIMIT 1") or die (mysql_error());
            if(mysql_num_rows($q) > 0)
            {
                print "името е заето";
            }
 
да прав си така по принцип се проверява дали го има но не е надежно на 100% по някой път се дъни а с sql проверката и заявката е в едно и вероятоността за дублиране е нулева.
ако при регистрация двама потребителя с едно и също потребителско име се опитват да се регисрират с php проверката може да не свърши работа докато при mysql ще изведе грешка и на дваамата потребителя
 
Код:
$name= 'somename';
$select = mysql_num_rows(mysql_query("SELECT * FROM Users where Name='$name'")); // проверява дали има име
if ($select< 0) { mssql_query("INSERT INTO Users (Name,Password) VALUES ('$name,passa')"); } // ако няма създава
else { mssql_query("UPDATE Users set Username='$name'"); } // ако има го променя
Примерно
 
Ама много обичате да пишете глупости.Естествено че става с една заявка :)
:evil:
Код:
INSERT INTO users (username, password) VALUES(...) ON DUPLICATE UPDATE ...
Това важи само ако някое поле което се дублира има ключ за уникалност.
Просто казано - "Пробвай да запишеш, ако не успееш редактирай съществуващия запис"
 

Back
Горе