Nach Datensätze suchen
Hi,
ich habe ein Problem undzwar möchte ich in meiner angelegten Datenbank nach einen bestimmten Datensatz suchen. Die Tabelle hat die spalten Username, Vorname und Nachname. Ich will die Datenbank nach dem Usernamen durchsuchen und falls der Username schon vergeben ist soll er eine Nachricht zurückgeben. Dies habe ich so gemacht.
$vergleich = "SELECT Username FROM tblRegistry
WHERE Username = '$username'";
$gefunden = mysql_query($vergleich);
if($gefunden)
{
echo "Username vorhanden<br>";
}
else{
echo "Username wird nicht benutzt<br>";
}
Es wird immer nur Username vorhanden ausgegeben. Wieso funktioniert es nicht?
Ich hoffe jemand kann mir weiterhelfen und ich bedanke mich schon im voraus.
PS:Ich hab das alles mit PHP und MySQl gemacht.
Mit freundlichen Grüßen
Sapzero
ich habe ein Problem undzwar möchte ich in meiner angelegten Datenbank nach einen bestimmten Datensatz suchen. Die Tabelle hat die spalten Username, Vorname und Nachname. Ich will die Datenbank nach dem Usernamen durchsuchen und falls der Username schon vergeben ist soll er eine Nachricht zurückgeben. Dies habe ich so gemacht.
$vergleich = "SELECT Username FROM tblRegistry
WHERE Username = '$username'";
$gefunden = mysql_query($vergleich);
if($gefunden)
{
echo "Username vorhanden<br>";
}
else{
echo "Username wird nicht benutzt<br>";
}
Es wird immer nur Username vorhanden ausgegeben. Wieso funktioniert es nicht?
Ich hoffe jemand kann mir weiterhelfen und ich bedanke mich schon im voraus.
PS:Ich hab das alles mit PHP und MySQl gemacht.
Mit freundlichen Grüßen
Sapzero
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 104985
Url: https://administrator.de/contentid/104985
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Sapzero
das ist ganz einfach zu erklären ^^
Was bekommst du den von mysql_query() als Rückgabewert ?
Einen Zeiger auf die Ergebnistabelle der Datenbank, eine Ressourcenkennung.
Dies geschieht weil es keine Rolle spielt ob du nun 4, 1.5Mil. oder 0 Zeilen als Ergebnis bekommst (oder haben willst).
Du bekommst lediglich ein FALSE wenn der Query nicht ausgeführt werden konnte weil er Beispielsweise einen Fehler enthält oder der Datenbankserver nicht reagiert.
Hm... ob das LIKE in der WHERE-Klausel besser als "=" ist kann ich jetzt nicht mit Sicherheit sagen. Meine Vermutung ist, das so aber auch Groß- und Kleinschreibung berücksichtigt wird.
~Arano
PS: Wünscht einen guten Rutsch
Edit:
Ach vergiss es, habe es gerade getestet !
Nimm in der WHERE-Klausel wieder das "=" zum vergleich.
Mit LIKE ginge es zwar auch, aber ist nicht unbedingt nötig sofern keine speziellere suche benötigt wird.
das ist ganz einfach zu erklären ^^
Was bekommst du den von mysql_query() als Rückgabewert ?
Einen Zeiger auf die Ergebnistabelle der Datenbank, eine Ressourcenkennung.
Dies geschieht weil es keine Rolle spielt ob du nun 4, 1.5Mil. oder 0 Zeilen als Ergebnis bekommst (oder haben willst).
Du bekommst lediglich ein FALSE wenn der Query nicht ausgeführt werden konnte weil er Beispielsweise einen Fehler enthält oder der Datenbankserver nicht reagiert.
// Query zum suchen vorhandener eintraege
$query="SELECT `Username`
FROM `tblRegistry`
WHERE `Username` LIKE '".$username."'";
$result=@mysql_query($query);
if(!is_resource($result))
query_error(mysql_error(),mysql_errno()); // ist meine eigene funktion
// gefundene eintraege zaehlen
$treffer=mysql_num_rows($result);
if($treffer>0)
echo 'Es wurden '.$treffer.' Treffer erzielt !<br>';
else
echo '"'.$username.'" erzielte keine Treffer !<br>';
Hm... ob das LIKE in der WHERE-Klausel besser als "=" ist kann ich jetzt nicht mit Sicherheit sagen. Meine Vermutung ist, das so aber auch Groß- und Kleinschreibung berücksichtigt wird.
~Arano
PS: Wünscht einen guten Rutsch
Edit:
Ach vergiss es, habe es gerade getestet !
Nimm in der WHERE-Klausel wieder das "=" zum vergleich.
Mit LIKE ginge es zwar auch, aber ist nicht unbedingt nötig sofern keine speziellere suche benötigt wird.