Doppelte Einträge von MySQL prüfen lassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Doppelte Einträge von MySQL prüfen lassen

    Hallo,

    ich hätte gerne mal wieder ein Problem ... am besten gelöst.
    Ich habe hier ne Tabelle mit id (int/PRIMARY KEY/auto) und username (text) und noch weiteren Spalten. Gehört zu einem Login Skript, aber das nur nebenbei.
    Nun hätte mich mal interessiert, ob es möglich ist, username irgendwie einzigartig zu machen (über primary key geht ja nicht 2x), so dass vorhandene Benutzernamen nicht einfach neu registriert werden können. Ich dachte, dass ginge über UNIQUE, aber der bringt mir nen Fehler. Wenn ich das richtig verstanden habe, geht das nur mit int-Werten ?!??
    Geht dieses bei der Erzeugung der Tabelle (so wie mit primary key), so dass ich das Überprüfen auf Vorhandensein eines bestimmten Namens MySQL überlassen kann oder muss ich vor dem Eintragen eines neuen Benutzers erst in der Datenbank abfragen, ob ein solcher Benutzer schon existiert. Geht sicherlich so, aber warum umständlicher als nötig.

    MfG

    Le_Cheffe

  • #2
    Das geht über Feld, Typ, Attribut oder Extra sicher nicht.
    Ob ein Wert innerhalb einer Tabelle schon vorhanden ist, lässt sich nur über eine Abfrage herausfinden.
    Gruß

    Kommentar


    • #3
      solange das Feld kein text feld ist kannst DU einen unique key anlegen, dann kannst Du keinen namen doppelt eintragen.
      Beim Versuch kommt eine Fehlermeldung wie zB:

      Duplicate entry 'text' for key 2
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        mehr infos dazu findest du hier.
        http://www.php-resource.de/forum/sho...threadid=14531
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hmmm... interessant!
          so kann man es machen. aber besser ist es, wenn du einen UNIQUE KEY über die felder legst, die eindeutig sind. wenn du ein INSERT machst, und die kombination der felder bereits vorhanden ist, bekommst du von mysql einen fehler.
          Da stellt sich mir die Frage... ?Felder, die eindeutig sind? was bedeutet das?
          Liegt der Vorteil dieser Vorgehensweise in der Geschwindigkeit?
          Gruß

          Kommentar


          • #6
            Original geschrieben von tobias_k
            Liegt der Vorteil dieser Vorgehensweise in der Geschwindigkeit?
            jepp. du braucht das nicht durch eine SELECT vorher prüfen.

            hast also eine query gespart, wenn alles ok ist. dadurch gehts natürlich schneller.....
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              hast du dir mal den anderen thread durchgelesen?
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                ja, ich hab die Threads *schnell* durchgelesen... hab mir schon gedacht, daß das schneller geht...
                Danke! gute Sache
                P.s. nur die "Eindeutigkeit" hat mich verwirrt.. Ich gehe jetzt mal davon aus, daß damit das Ergebnis der Query gemeint ist. Was sollte da schieflaufen?

                Kommentar


                • #9
                  eindeutig ist der verbund aus mehreren spalten.

                  wenn so was schon da ist, kann es nicht nochmal eingetragen werden. dann kommt der fehler aus der DB.

                  teste das mal live durch. die beispiele sind einfach ...
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    klar, werd ich testen.. und daran wachsen und wachsen

                    Kommentar


                    • #11
                      mach das .....

                      wenn du es verstehst, was eigentlich nicht schwer ist, kann es dir viel arbeit abnehmen ...
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        ich glaub...

                        ...ich hab's dann doch verstanden add.html
                        Schönen Dank nochmal und Gruß
                        Zuletzt geändert von tobias_k; 18.01.2003, 16:51.

                        Kommentar


                        • #13
                          habs mir grad mal angesehen. sieht schön aus...
                          du machst wohl viel in flash

                          was mir aber noch eingefallen ist. vielleicht ist es noch besser, wenn man auf name und email jeweils noch einen unique einzeln setzt.

                          so kann ein name nur einmal und eine email nur einmal verwendet werden.

                          wenn es für einen newsletter ist, würde ich nur email noch zusätzlich unique setzen. name nicht umbedingt. kann ja zwei 'klaus müller' geben, aber mit unterschiedlicher email...

                          nachtrag: mir schreibt man mit X am ende ...
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            das mit dem newsletter ist klar...
                            Wenn ich noch einzelne Uniques setze, wird der Fehler in der Kombi aber nicht mehr deutlich..
                            P.s. ja,ja.. ich mach fast alles in Flash.. ich finde, daß Flash und PHP hervorragend zusammenarbeiten. Da ich jetzt auch noch den Server und die DB offline hinbekommen hab ==> kann ich richtig feine Offline-Tools zimmern.

                            Kommentar


                            • #15
                              Original geschrieben von tobias_k
                              Wenn ich noch einzelne Uniques setze, wird der Fehler in der Kombi aber nicht mehr deutlich..
                              du bekommst ja die meldung, welcher key verletzt worden ist...

                              probiers mal mit phpmyadmin aus.

                              mit mysql_error() könntest du die nummer auslesen, denn mysql_errno() ist immer die gleiche.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X