User name vergeben?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anbieten
anzahl
benutzerdaten
benutzername
button
code
domain
eingabe
kleinschreibung
mitteln
part
re
spalte
spalten
super name
verbindung
vergeben
vorhanden code
weiterkommen
zeile
-
Ich möchte ein "Wunschnamen" check auf meiner hp ref="/tag/anbieten">anbieten also das man prüfen kann ob der wunschname schon vergeben ist
in etwa so wie bei lima city "Domain gefällig" weiß aber nicht wie das geht könnt ihr mir helfen das is meine DB verbindung
include ("sql.php"); $pass = $_POST['name']; $sql = "SELECT ". " * ". "FROM ". "benutzerdaten ". "WHERE ". "(Nickname'
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Soll Groß- und Kleinschreibung beachtet werden? Dann musst du eh eine entsprechende Collation wählen. Falls ein Name unabhängig von der Schreibweise einmalig sein soll:
"SELECT * FROM benutzertabelle WHERE benutzername LIKE '".$wunschname."'";
Was hier nun fehlt ist der Part an dem $wunschname gegen SQL Injection gesichert wurde ^^" -
evil-devil schrieb:...
Was hier nun fehlt ist der Part an dem $wunschname gegen SQL Injection gesichert wurde ^^
richtig und man sollte auch in diesem Fall das 'SELECT * FROM..' nicht verwenden, es sei denn du möchtest mehr als die hälft aller spalten ausgeben...da dies glaub ich nicht der Fall ist könntest du das auch so lösen
SELECT benutzername FROM benutzertabelle WHERE benutzername LIKE '".$wunschname."' //oder noch besser SELECT COUNT(benutzername) FROM benutzertabelle WHERE benutzername LIKE '".$wunschname."'
im zweiten fall bekommst du dann die Anzahl der Zeilen zurück und wenn diese dann größer 0 ist, dann ist der name schon vorhanden.
Beitrag zuletzt geändert: 24.2.2009 22:09:38 von myhead -
$benutzername = $_POST["name"]; $res = mysql_query("SELECT COUNT(benutzername) AS vorhanden FROM benutzertabelle WHERE benutzername = '".mysql_real_escape_string($benutzername)."'"); $row = mysql_fetch_assoc($res); if($row["vorhanden"] >= 1) { echo "Benutzername schon vergeben"; } else { echo "Super, Name noch frei..."; }
-
falls das allerdings schon passieren soll, bevor der benutzer das formuar abschickt (also z.B. direkt nach der eingabe ins feld oder mit einem button "Prüfen" u.Ä.) wirst du mit reinem PHP nicht weiterkommen. dann wird JavaScript nötig werden.
-
myhead schrieb:
SELECT benutzername FROM benutzertabelle WHERE benutzername LIKE '".$wunschname."' //oder noch besser SELECT COUNT(benutzername) FROM benutzertabelle WHERE benutzername LIKE '".$wunschname."'
im zweiten fall bekommst du dann die Anzahl der Zeilen zurück und wenn diese dann größer 0 ist, dann ist der name schon vorhanden.
Das ist nicht unbedingt Ideal ;)
Wenn man die Anzahl haben will, würde ich das mit SQL Mitteln lösen.
SELECT SQL_CALC_FOUND_ROWS benutzername FROM benutzertabelle WHERE benutzername LIKE '".$wunschname."' LIMIT 1 Und dann für die Menge: SELECT FOUND_ROWS()
Anstatt des Benutzernamens würde ich persönlich nur die ID zurückgeben im ersten Query, das ist noch weniger Overhead. -
Anstatt des Benutzernamens würde ich persönlich nur die ID zurückgeben im ersten Query, das ist noch weniger Overhead.
stimmt, nur ich wusste halt nicht ob er eine Spalte benutzerid hat xD -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage