Beiträge von Phy

    Hallo,

    ich habe eine Datenbank namens, db_registry mit 2 Tabellen namen und user.

    in der Tabelle user habe ich die 5 felder user_ID, username, passwort, user_geloescht und letzter_login
    primary key ist hier user_ID

    und inder Tabelle namen habe ich die 4 Felder namen_ID, vorname, nachname und user_ID
    primary key ist hier namen_ID.

    Ich möchte, dass in der Tabelle namen im Feld user_ID das selbe steht wie in der Tabelle user im Feld user_ID bei den zugehörigen Datensätzen. Also dachte ich ich kann wie in Acces einen foreign key festlegen für das Feld user_ID in der Tabelle namen, das auf das Feld user_ID aus der Tabelle user verweist, aber ich weiss leider nicht wie ich das einstellen kann, falls das möglich ist. Dazu sei gesagt, dass ich als admin auf die Datenbank über localhost/phpmyadmin/index.php zugreifen kann, da ich das mit xampp gemacht habe/machen muss.

    Vll ein Beispiel zur Verdeutlichung was ich meine:

    Ich hab ein Registrierungsformular erstellt in dem in 4 Eingabefeldern eben vorname, nachname, username und passwort Daten eingegeben werden. Die Registrierung funktioniert an sich so, dass die eingegeben Daten in dem Formular bei vorname und nachname in der Tabelle namen und die Eingabe bei username und passwort in der Tabelle user gespeichert werden. Das passiert an sich auch, nur dass in der Tabelle user die user_ID richtig vergeben wird nach autowert, aber in der Tabelle namen bei dem zugeörigen Datensatz zwar name und vorname stehen, aber eben nicht die selbe user_ID wie in der Tabelle user, sondern 0.


    Zur Info mein Insert Into befehl:

    PHP
    $sql = ("INSERT INTO user (user_ID, username, passwort, user_geloescht, letzter_login) VALUES (NULL, '$username', '$pw', '', '')");
    
    
       $result = mysql_query($sql) OR die(mysql_error());
    
    
       $sqla = ("INSERT INTO namen (namen_ID, vorname, nachname) VALUES (NULL, '$vorname', '$nachname')");
    
    
       $resulta = mysql_query($sqla) OR die(mysql_error());

    Muss ich jetzt also vll etwas an dem unteren INSERT INTO Befehl ändern, damit die user_ID auch dort richtig ist, oder kann ich irgendwie in der Datenbank einen Foreign Key zuweisen, oder liegt das Problem sogar noch ganz woanders?

    ID ist doch sicherlich ein auto_increment feld?
    Dann lass es aus dem insert befehl raus.

    ja es handelt sich um ein auto_increment feld, allerdings scheint das nicht das problem gewesen zu sein.


    Dir fehlt eine schließende Klammer am Ende des SQL-Befehls.


    SQL
    INSERT INTO user (ID, username, passwort, user_geloescht, letzter_login) VALUES (NULL, '$username', '$pw', '', '')

    Ich habe die fehlende Klammer hinzugefügt, und daraufhin war eine Registrierung erfolgreich, es kam die Meldung "Ihre Registrierung war erfolgreich" und die Daten wurden dort gespeichert, wo ich es wollte.

    Vielen Dank.

    Ich habe das OR die(mysql_error()) mit eingefügt und bekomme nun die Meldung:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


    Um ehrlich zu sein, hilft mir persönlich das nicht weiter zur Erkennung des Fehlers.

    Ich habe in meiner Datei register.html folgendes Formular:

    PHP
    <form method="POST" action="register.php">
    
    
      <div><br>Username:<br><input type="Text" name="username" value="" size="" maxlength=""></div>
      <div><br>Passwort:<br><input type="Password" name="pw" value="" size="" maxlength=""></div>
      <div><br><br>
    <input type="Submit" name="" value="Jetzt registrieren!"></form></div>

    Ich möchte, nachdem geklärt wurde ob in beiden Feldern etwas eingegeben wurde, dass diese Daten in einer Datenbank namens db_registry in der Tabelle user gespeichert werden über einen INSERT INTO Befehl.

    Meine register.php sieht momentan so aus:

    Wenn ich nun auf der register.html in die beiden Felder Username und Passwort etwas eingebe werden diese Daten aber nicht in der Datenbank gespeichert, sondern ich bekomme die Meldung: Ihre Registrierung schlug fehl. , also das was ich bei

    PHP
    if ($result){
           echo 'Ihre Registrierung war erfolgreich.<br><br><a href= "index.php">zurueck zur Startseite</a>';
             }
       else {
           echo 'Ihre Registrierung schlug fehl.<br><br><a href= "register.html">zurueck zur Registrierung</a>';
             }

    als Fehlermeldung eingegeben habe, die mir ausgegeben werden soll, wenn eben die Registrierung nicht geklappt hat.

    Was muss ich denn im INSERT INTO - Befehl ändern, damit die Registrierung funktioniert? Oder liegt der Fehler vll woanders?
    Vielen Dank.