philos: Keine doppelten Datenbankeinträge - Wie?

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

  1. 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-)>

    1. 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 ;-)

      1. 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-)>

  2. 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

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  3. 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

  4. 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

    1. yo,

      dir ist aber schon klar, dass er eine datenbank benutzt oder ?

      Ilja

      1. Hi,

        btw: er hat nichts von MySql gesagt

        -mfg nok

        1. 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

  5. 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

    --
    no strict;
    no warnings;
    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
    1. 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-)>