Seite 1 von 1

MySQL-Abfrage

Verfasst: 14.12.2008 20:27
von goodpeace
Hallo ,

Ich wollte fragen wie mann in der DB prüft ob schon eine Zeile drin ist .

ZB . Will ich abfragen op in der DB 'Warnings' das Mitglied mit dem Namen X schon verfasst ist . Wenn schon ein eintrag mit dem Nicknamen drin sein sollte dass mann dann auf eine andere Seite Weitergeleitet wird ?

Danke im voraus

Verfasst: 14.12.2008 20:54
von piero
also verbindung usw. sollte schon stehen...
sqlabfrage sieht ganz normal aus:

Code: Alles auswählen

SELECT id FROM `deine_tabelle` WHERE `username`='der username' LIMIT 1
wieviele id's da nun zurückkommen kannst du mit der funktion mysql_affected_rows() abfragen ;)

der phpcode folglich:

Code: Alles auswählen

$username = "foobar";
// $username mit sicherheitsfunktionen durchchecken, damit kein scheiss gemacht werden kann...
mysql_query("SELECT id FROM `deine_tabelle` WHERE `username`='$username' LIMIT 1");

if(mysql_affected_rows()) {
//code wenn der name schon existiert
} else {
//code wenn der name noch nicht existiert.
}
das ist alles ;)

Verfasst: 14.12.2008 21:04
von goodpeace
SUper danke dir =)

Werde das später sofort mal testen =)

Verfasst: 14.12.2008 22:18
von Pyramide
piero hat geschrieben:wieviele id's da nun zurückkommen kannst du mit der funktion mysql_affected_rows() abfragen ;)
Vielleicht solltest du dir vorher die Doku zu einer Funktion durchlesen, bevor du sie jemandem empfiehlst:
mysql_affected_rows() liefert die Anzahl betroffener Datensätze durch die letzte INSERT, UPDATE oder DELETE Anfrage an den Server

...

Um die Anzahl der gelieferten Datensätze einer SELECT-Anfrage zu erhalten benutzen Sie stattdessen die Funktion [php:mysql_num_rows]
Wenn man aber sowieso nur die Anzahl braucht, kann man auch gleich

Code: Alles auswählen

SELECT COUNT(primary_key_feld) FROM ...
benutzen, dann muss der DB-Server nämlich nur diese Information bereitstellen.

Verfasst: 14.12.2008 22:24
von piero
hmm... irgendeine leise ahnung hatte ich schon, dass da irgwndwas verkehrt war, nur kam ich nicht drauf^^
thx jedenfalls :)

Verfasst: 15.12.2008 00:52
von goodpeace
Habs eingebaut funktioniert so wie ich mir das gedacht hatte =)