Keine doppelten Datenbankeinträge - Wie?
philos
- php
Hallo zusammen,
es gibt doch soviele Seiten, dass wenn man zum Beispiel einen Benutzernamen aussucht und der schon vergeben ist, dass dann ein dementsprechender Hinweise kommt, dass dieser schon vergeben ist.
Wie macht man sowas in der Praxis?
Habt ihr Anregungen, Tipps, Ideen?
ciao philos
hi
Wie macht man sowas in der Praxis?
du fragst einfach bevor du die daten einträgst die datenbank ob diese schonmal vorhanden sind.
wo liegt das problem?
so long
ole
(8-)>
servus
du fragst einfach bevor du die daten einträgst die datenbank ob diese schonmal vorhanden sind.
wo liegt das problem?
das problem, liegt daran dass ich nicht weiß wie das geht ;-)
hi
das problem, liegt daran dass ich nicht weiß wie das geht ;-)
eine einfach SQL-Abfrage (select) ist wirklich nichts großartiges und steht in den meisten SQL-Büchern doch ziemlich am Anfang.
dürfte ich mal fragen was genau du vor hast?
so long
ole
(8-)>
Hello,
dazu musst Du erstmal genau definieren, was "doppelt" sit und wie Du das zu erkennen gedenkst, nicht in der Db sondern erst einmal auf Papier...
Dann kann man sich anschließend ein Konzept für die DB überlegen.
I.d.R. werden dazu häufig Unique Indexes benutzt. Aber man kann ja nun z.B. keinen 'Karl Müller' aussperren, nur weil schon einer vorhanden ist. Und wie der Zufall das so will, wohnen die auch noch im selben Haus und haben am Selben Tag Geburtstag. Was nun?
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Philos,
du kannst zB die DB abfragen, wenn ein Benutzer 'heinz' sich anmeldet. Benutze 'SELECT irgendwas FROM tabelle WHERE user = "heinz"'. Gibt es ein Ergebnis, gibt es auch einen heinz.
Dieter
Hi philos,
es gibt doch soviele Seiten, dass wenn man zum Beispiel einen Benutzernamen aussucht und der schon vergeben ist, dass dann ein dementsprechender Hinweise kommt, dass dieser schon vergeben ist.
stimmt!
Wie macht man sowas in der Praxis?
Habt ihr Anregungen, Tipps, Ideen?
schauen wir mal du hast also eine DB (z.B. daten.txt) die sieht z.B. so aus:
____________
1: hans|---|z@xy.de
2: ulf |---|a@bc.de
3: karl|---|d@ef.de
____________
nun willst du jemand neuen eintragen, und damit dein Php-Prog auch weiß wer schon in der DB ist musst du erstmal die DB auslesen.
inetwa so:
$datei="daten.txt";
if (file_exists($datei))
{
$datei_handle=fopen($datei,"a+");
}
else
{
$datei_handle=fopen($datei,"w");
}
$zeile=file($datei,1024); // JEDE ZEILE IN EIN ARRAY AUSLESEN
for ($i=0, $fehler_var=0; $i<=count($zeile); $i++)
{
//name und eMail trennen
$gelesener_name=explode("|---|",$zeile[$i]);
if ($gelesener_name[0]==$name)
{
$fehler_var++;
}
}
//jetzt musst du prüfen ob der name schon vorhanden ist!du kannst auch namen sperren dazu habe ich gleich ein Beispiel eingebaut!
if (($fehler_var>=1) || ($name == Admin))
{
echo "Dieser Benutzer ist leider schon vorhanden!";
}
else
{
fputs($datei_handle,"$name||$pw \n");
echo "Fertig!";
}
ich hoffe das hilft dir weiter
ciao philos
-mfg nok
yo,
dir ist aber schon klar, dass er eine datenbank benutzt oder ?
Ilja
Hi,
btw: er hat nichts von MySql gesagt
-mfg nok
yo,
btw: er hat nichts von MySql gesagt
er spricht aber von datenbanken und mysql ist beleibe nicht die einzige, zumal ich vermute, dass er genau damit arbeitet.
Ilja
Hallo,
du definierst die username spalte als unique, fügst ein und fragst ab, ob ein fehler aufgetreten ist. wenn der Eintrag schon einmal vorhanden ist, wird ein Fehler gedingst, und du kannst es dem user melden.
Das spart dir die eine Abfrage, ob der Username schon existiert.
Gruss
hi
Das spart dir die eine Abfrage, ob der Username schon existiert.
find ich nicht sehr praktikabel, da z.B. bei uns alle Fehler geloggt werden. das würde die log-datei doch enorm aufblähen auf dauer.
die zusätzliche abfrage vorher finde ich da schon die sauberere lösung.
so long
ole
(8-)>