Autor Zpráva
Anonymní
Profil *
$iii = MySQL_Query("SELECT * FROM tip_users WHERE (name LIKE '$nick')");
if (MySQL_Num_Rows($iii) <> 1){
$kkk="ok";
}
else{
$kkk="ko";
echo("Nick už někdo používá");
}
Anonymní
Profil *
I když tam v tý tabulce ten nick je, tak to hodí tu první možnost ($kkk="ok"). Potřebuju totiž ošetřit, aby nebylo možné registrovat uživatele, kteří už sou zaregistrovaní.
Casero
Profil
a co i nefunguje???...a proč jen neporovnáš where name==$nick?
koudi
Profil
Máš zajímavý názvy proměnných.

Ono se v php dá používat toto "<>"? Já myslel, že tohle jde snad jen ve VB.
Acci
Profil
Radši se podívej na tohle http://php.vrana.cz/vyuziti-unikatnich-klicu-v-databazi.php
Joker
Profil *
Vezmu to po odrážkách:
- používat takovéto názvy proměnných Vám vřele nedoporučuji. Stačí pár desítek řádků skriptu a při údržbě se z toho zblázníte a je to zdroj zbytečných a špatně dohledatelných chyb
- Proč používáte LIKE, když chcete najít přesně stejný text?
- Nedovolíte zaregistrovat druhého uživatele stejného jména, ale pokud nějakým způsobem dojde k duplicitě, dovolíte zaregistrovat třetího a dalšího? Připadá mi to nelogické.

Osobně bych to napsal asi takto:
$vysledek = mysql_query("SELECT * FROM tip_users WHERE name = '$nick'");
if(mysql_num_rows($vysledek) == 0){
$ok = true;
}
else{
$ok = false;
echo("Nick už někdo používá");
}
Joker
Profil *
koudi
Taky jsem na to koukal, ale prej jo. Stejnětak jsem docela koukal, že funguje MySQL_Query(). Ale funguje.
djlj
Profil
Joker
Nejlepším řešením je nastavení unikátnosti pro nick. Pak jen stačí zjišťovat, co vrátí mysql_errno a podle toho vypsat hlášku...
Joker
Profil *
djlj
Je to tak.

Ten můj přepis měl spíše ukázat na chyby v tom skriptu, než navrhnout jiné řešení. Jinak je ale to řešení s INSERT a unikátním sloupcem asi nejjednodušší.
Ale ten sloupec bych dal unikátní každopádně. Potom není problém ani s tím mým řešením, akorát tam bude ten SELECT navíc.

Jo, ještě co jsem tam přehlédl: SELECT * je zbytečný, když vpodstatě nepotřebuju vědět žádné hodnoty.
Takže:
"SELECT name FROM tip_users WHERE name = '$nick'"
Toto téma je uzamčeno. Odpověď nelze zaslat.