kostenloser Webspace werbefrei: lima-city


Feld in Datenbank freilassen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Hallo!

    Wie kann man beim Eintragen in eine Datenbank, ein Feld freilassen, wo erst später was inzugefügt werden soll?

    Ich habe es bisher mit \'0\' probiert an dieser Stelle, ging nicht, was ich mir bereits fast dachte. Dann habe ich es mit \'\' probiert. Ging aber auch nicht. Also frage ich mich, ob es dafür irgendeinen Platzhalter gibt, den man stattdessen einfügen kann/muss.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. p***********d

    Einfach bei dem INSERT-Befehl in runden Klammern vorher alle Spalten nennen, in die eingetragen werden soll. Beispiel:
    // Hier wird in spalte1, spalte2, spalte 4 und spalte5 etwas eingetragen, spalte3 wird leer gelassen.
    $sql = \"INSERT INTO tabelle (spalte1, spalte2, spalte4, spalte5) VALUES (\'hallo\', \'blubb\', \'bla\', \'test\');\";

    lg

    Beitrag geändert: 20.3.2008 20:58:07 von pinguinfreund
  4. w******s

    hey.
    weils grad dazu passt, hab ich ne frage, wenn in der datenbank aber z.b gesagt wird \"spalte3\" darf nicht null sein also NOT NULL gesetzt.
    Geht das dann auch? Eigentlich nicht?! Aber was passiert wenn man das wie im Code eintragen will?
    [hab noch nicht so viel erfahrung mit sql/php]
    lg
  5. Dann stell doch ein, dass es null sein darf und standardmässig null ist und wenn dann später was rein soll überschreibst du die null ja eh mit bspw. 1.

    Not Null ist doch nur sinnvoll, wenn man das Gegeneteil von dem erreichen will, was du willst, man also verhindern will, dass es leer bleibt (wenn ich nicht irre, bin auch nicht so der HEld im erklären von Script)
  6. w******s



    toszi schrieb:
    Dann stell doch ein, dass es null sein darf und standardmässig null ist und wenn dann später was rein soll überschreibst du die null ja eh mit bspw. 1.

    Not Null ist doch nur sinnvoll, wenn man das Gegeneteil von dem erreichen will, was du willst, man also verhindern will, dass es leer bleibt (wenn ich nicht irre, bin auch nicht so der HEld im erklären von Script)


    das stimmt schon. ich hab ja das auch gar nicht gemacht. aber mich hätts interessiert ob dann überhaupt was eingetragen wird,wenns auf NOT NULL eingestellt ist und man in dieser spalte nichts eintragen will^^
  7. achso. ok. Dann lautet die antwort: Ja, im Normalfall 0, weil es dann automatisch als Standard definiert sein müsste ^^
  8. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Hm, anscheinend geht das so aber auch nicht. Ich bekomme immer noch die Fehlermeldung, dass die Anfrage nicht korrekt ist. Ich habe es jetzt mit der genauen Spaltenbezeichnung sowie mit spalte1 etc. probiert. Beides ging nicht. Woran liegt das, frage ich mich?
  9. also es gibt jetzt noch die möglichkeit vernünftig zu debuggen. dann guckst du unter php.net wie die befehle für mysql_erno und mysql_error() sind

    mysql_error — Liefert den Fehlertext der zuvor ausgeführten MySQL Operation


    mysql_errno — Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL Operation


    mit den beiden funktionen bekommst du genauere Angaben zum Abbruch der MYSQL verbindung
    also einfach in die \"or die\" anweisung schreiben und gut ist

    ansonsten kannst du es einfach damit versuchen \'\' als value eintragen zu lassen:
    // Hier wird in spalte1, spalte2, spalte 4 und spalte5 etwas eingetragen, spalte3 wird leer gelassen.
    $sql = \"INSERT INTO tabelle (spalte1, spalte2, spalte3, spalte4, spalte5) VALUES (\'hallo\', \'blubb\', \'\', \'bla\', \'test\');\";

  10. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Mit den Fehlermeldungen von mysel_error() komme ich auch nicht klar. Der sagt mir dann, das irgendeine Zeile mit einer anderen nicht übereinstimmt (z.B. Zeile 1, in der aber nur <html> steht!).

    Das mit den Anführungszeichen habe ich ja bereits probiert, ging ja auch nicht.

    Und sobald ich die Spalte aus der Datenbank lösche, die freibleiben soll, funktioniert ja auch alles einwandtfrei. Also ist ja ansonsten alles richtig. Nur dass es eben nicht geht, wenn die Zeile freibleiben soll.
  11. moment du hast zeile geschrieben?
    wolltest du jetzt
    spalte schreiben ( dat in der tabelle von oven nach unne)
    zelle ( dat is son kleiner viereckiger kasten )
    oder zeile?? dat is nämlich von links nach rechts...
  12. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Na ja, ein Feld halt. Ich habe insgesamt 8 Felder in meiner Tabelle und das 8. soll vorerst frei bleiben.

    Ich war der Meinung, sowas auch schon mal in einem meiner Bücher gelesen zu haben, aber ich kann mich nicht erinnern wo und finde es leider auch nicht.
  13. p***********d


    Na ja, ein Feld halt. Ich habe insgesamt 8 Felder in meiner Tabelle und das 8. soll vorerst frei bleiben.

    Ich war der Meinung, sowas auch schon mal in einem meiner Bücher gelesen zu haben, aber ich kann mich nicht erinnern wo und finde es leider auch nicht.

    Siehe mein Post weiter oben...
    Ist der so leicht zu übersehen? ;)

    Beitrag geändert: 20.3.2008 20:57:45 von pinguinfreund
  14. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Okay, ich habe das so gemacht:

    $anfrage=\"INSERT INTO user (spalte1, spalte2, spalte3, spalte4, spalte5, spalte6, spalte7) VALUES (\'\";
                            $anfrage.=\"0\', \'\";
                            $anfrage.=$vorname;
                            $anfrage.=\"\', \'\";
                            $anfrage.=$nachname;
                            $anfrage.=\"\', \'\";
                            $anfrage.=$pw;
                            $anfrage.=\"\', \'\";
                            $anfrage.=$email;
                            $anfrage.=\"\', \'\";
                            $anfrage.=$geschlecht;
                            $anfrage.=\"\', now())\";
                            mysql_query($anfrage)
                              or die(\"Fehler bei der Anfrage 2\");

  15. p***********d

    Gewöhn dir mal
    mysql_query($anfrage) or die(mysql_error());

    an, so kriegst du auch Fehlermeldungen mit denen du was anfangen kannst ;)

    Wo ist denn jetzt noch das Problem? Oder ist es gelöst?

    Beitrag geändert: 20.3.2008 22:44:06 von pinguinfreund
  16. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Nein, mit mysql_error() komme ich eben nicht klar (siehe weiter oben).

    Das Problem liegt einfach mal darin, dass es nicht funktioniert, wenn es in der Datenbank ein Feld gibt, das nicht mit dieser Anfrage ausgefüllt wird.
  17. wir sind jetz an einem Punkt an dem ich sagen würde: Bitte mal den kompletten Code und am besten den SQL-Code der tabelle. Ich seh nämlich nicht mehr durch was du überhaupt willst;) Besonders versteh ich nicht warum du mit dem mysql-error nicht klar kommst. da kommt doch einfach nur eine Fehlermeldung und zwar die des Fehlers der verursacht wurde. Eigentlich das Feature schlechthin um rauszufinden was da nicht funktioniert
  18. mir gefällt dein quellcode irgendwie nicht. entweder guck ich falsch oder da fehlen 2x \' einmal in der ersten zeile und dann noch zum schluss.
    <?php 
    $dbHost = \"localhost\";
    $dbUser = \"benutzer\";
    $dbPass = \"passwort\";
    $dbName = \"test\";
    
    $link=mysql_connect($dbHost, $dbUser, $dbPass);
    
    $select_db = @ mysql_select_db($dbName); //ohne db auswählen gehts net ;)
    
    $anfrage=\"INSERT INTO user (spalte1, spalte2, spalte3, spalte4, spalte5, spalte6, spalte7)
    VALUES (\'0\', \'$vorname\', \'$nachname\', \'$pw\', \'$email\', \'$geschlecht\', now())\";
    
    $anfrage_gelungen = mysql_query($anfrage) or die(\"<b>Fehler</b>: \". mysql_errno().\"  \".mysql_error());
    
    
    if ($anfrage_gelungen == \"1\") echo\" Eintrag in \'user\' erfolgreich\";
    
    ?>

    aso jetzt nachdem ich den code mal gekürzt habe merk ich dass da nix fehlt sry ^^

    so nachdem ich mir ne datenbank eingerichtet habe, klappt dein script bei mir.
  19. Autor dieses Themas

    vrw

    vrw hat kostenlosen Webspace.

    Ich hab das jetzt inzwischen auch hinbekommen ... ich glaube sogar, letzte Nacht noch ... aber was genau das jetzt war, weiß ich nicht mehr ... war aber auf jeden Fall wieder irgend so ein Dusselfehler wie das ja meistens so ist ;)
  20. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!