Ankündigung

Einklappen
Keine Ankündigung bisher.

UNIQUE Frage ( abfrage problem )

Einklappen

Neue Werbung 2019

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

  • Mondschein
    hat ein Thema erstellt UNIQUE Frage ( abfrage problem ).

    UNIQUE Frage ( abfrage problem )

    Hallo zusammen ,

    ich habe mal eine frage :

    Also ich habe 3 Felder meiner DB mit UNIQUE belegt ! Das bewirkt :

    man kann jeweils in die 3 felder eine zahl eingeben , daraus ergibt sich eine kombination die aber nict doppelt in der DB stehen darf !

    Das klappt soweit und kommt aber keine fehlermeldung , wenn ein user versucht eine schon existierende kombination einzugeben !

    Wie könnte die Abfrage aussehen um ausgeben zu lassen :

    Die 3 Zahlen gibt es schon !


    Greez

    Mondschein

  • Zergling-new
    antwortet
    Die Rangehensweise kannte ich noch garnicht, sehr interessant. Danke für den Hinweis!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Mit Zerglings Methode musst Du die Tabelle vor dem SELECT bis nach dem INSERT sperren, sonst hast Du race conditions.


    Andere Methode:
    duplicate entry for key X hat den Fehlercode 1062
    PHP-Code:
    <?php
    $sql 
    'INSERT INTO ...';
    $result mysql_query($sql$db);
    if (
    mysql_errno()==1062) {
        echo 
    'Kombination bereits vorhanden';
    }
    else if (
    mysql_errno()!=0) {
        die(
    mysql_error());
    }
    else {
        echo 
    'erledigt';
    }
    ?>

    Einen Kommentar schreiben:


  • Mondschein
    antwortet
    Ich glaube es scheint zu klappen !

    Danke schön


    Mfg

    Mondschein

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Achso, na dann mach halt eine SELECT-Abfrage bevor du den Datensatz einfügst:

    PHP-Code:
    <?php
    $sql 
    "SELECT COUNT(id) FROM table WHERE col1='$col1' AND col2='$col2' AND col3='$col3'";
    if (
    mysql_result(mysql_query($sql),0) == 0) {
      
    // gibts noch net
    } else {
      
    // da war jemand schneller...
    }
    ?>

    Einen Kommentar schreiben:


  • Mondschein
    antwortet
    das mit den 3 spalten habe ich ja schon , sind alle 3 mit den key belegt ( UNIQUE )

    nun will ich aber das der User es mitbekommt das die zahlen schon drin stehen !


    auf diese abfrage komm ich einfach net

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Ich kenn den MySQL Befehl nicht, aber ich habs immer so gemacht:

    in phpMyAdmin nachträglich nen Primärschlüssel angelegt für irgendein Feld. Den Befehl hab ich mir bemerkt. War sowas wie
    ALTER TABLE DROP PRIMARY KEY SET (`spalte`)

    Dann hab ich den wieder entfernt (unter Struktur) und den vorherigen SQL-Befehl ins phpMyAdmin-SQL-Feld reinkopiert und statt (`spalte`) jetzt (`spalte1`, `spalte2`,`spalte3`) geschrieben, sah dann also etwa so aus:
    ALTER TABLE DROP PRIMARY KEY SET (`spalte1`, `spalte2`,`spalte3`)
    Wie gesagt: ist Pseudocode, müsstest so wie beschrieben vorgehen oder warten bis jemand den korrekten Code postet.

    Die Frage die sich dann aber oft stellt ist, macht es dann überhaupt Sinn, diese Eingaben in 3 Spalten auszuteilen oder würde nicht auch eine genügen...

    Einen Kommentar schreiben:

Lädt...
X