Anzeige:
Ergebnis 1 bis 11 von 11

Thema: in mysql ein feld auf den NULL status setzen

  1. #1
    Registrierter Benutzer Avatar von rideyourstyle
    Registriert seit
    23.09.2004
    Beiträge
    25

    in mysql ein feld auf den NULL status setzen

    hallo leute.

    ich habe in mysql eine tabelle mit sechs url feldern. diese werden per upload gefüllt und heissen url1 ... url6. da nicht immer alle sechs felder ausgefüllt werden sollten nur diejenigen eingetragen werden, die auch eine url enthalten. mien skript füllt aber immer alle aus.gibt es eine möglichkeit bestimmte felder in mysql mit dem NULL status zu füllen???
    oder kennt jemand sonst eine lösung für mein problem???

    mercy aus der verschneiten schweiz...
    _______________________________
    rideyourstyle.ch

  2. #2
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    UPDATE `table` SET `col`=NULL;

  3. #3
    Registrierter Benutzer Avatar von rideyourstyle
    Registriert seit
    23.09.2004
    Beiträge
    25
    ja wenn ich das so

    $s = "insert into $db_table ( datum, text, ip, url1, url2, url3, url4, url5, url6) values( '$datum', '$text', '$ip', NULL, NULL, NULL, NULL, NULL, NULL )";

    eintrage, dann funktioniert es auch. aber dieses NULL ohne kann ich nicht in eine variable speichern ohne dass es den text NULL einfügt!
    das ziel wäre folgendes:

    $s = "insert into $db_table ( datum, text, ip, url1, url2, url3, url4, url5, url6) values( '$datum', '$text', '$ip', '$name1', '$name2', '$name3', '$name4', '$name5', '$name6' )";
    _______________________________
    rideyourstyle.ch

  4. #4
    Registrierter Benutzer
    Registriert seit
    11.03.2004
    Beiträge
    7
    Hi OP,

    mach doch einfach in dem Schritt, wo du die Daten aus deinem Formular verifizierst einfach eine Kontrolle, ob die Felder gefüllt sind. Sprich, wenn ein Feld leer ist, schreib einfach 'NULL' in die Variabel (z.B. $name3) rein.

    Andere herrangehensweise könnte auch sein, dass du leere Felder einfach aus deinem SQL "Insert into" Statement rauslässt. Dann sollte IIRC auch NULL in den nicht benutzten Feldern drin stehen.

    my 2 cents
    waxman

  5. #5
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Zitat Zitat von waxman
    Sprich, wenn ein Feld leer ist, schreib einfach 'NULL' in die Variabel (z.B. $name3) rein.
    Dann wird aber die Spalte nicht auf NULL gesetzt sondern kriegt den Text "NULL"...

    Zitat Zitat von waxman
    Andere herrangehensweise könnte auch sein, dass du leere Felder einfach aus deinem SQL "Insert into" Statement rauslässt. Dann sollte IIRC auch NULL in den nicht benutzten Feldern drin stehen.
    Zumindest, wenn NULL der Standardwert ist.
    Aber diese Lösung würde ich ansonsten auch empfehlen.
    @rideyourstyle: Stell den Query dynamisch zusammen und pack einfach nur die nicht-NULL-Spalten mit rein.

  6. #6
    Registrierter Benutzer Avatar von rideyourstyle
    Registriert seit
    23.09.2004
    Beiträge
    25
    ich habs das problem nun gelöst (nicht gerade schulbuchmässig aber funktioniert!! ;-) )und zwar wie folgt:

    1. alle daten eingetragen
    2. den neusten eintrag nochmals aufrufen
    3. für jedes feld eine if abfrage und der error meldung die im array des uploads aufrufbar ist jeweils nur das feld auf NULL "geupdated" das nicht den errorcode 0 enthielt.


    das mit dem string dynamisch zusammensetzen habe ich mir auch gedacht aber mir schien die andere lösung einfacher... ;-)
    aber ich habe mir heute noch ein php & mysql buch gekauft und hoffe damit ein bisschen schlauer zu werden.
    _______________________________
    rideyourstyle.ch

  7. #7
    Registrierter Benutzer
    Registriert seit
    11.03.2004
    Beiträge
    7
    Zitat Zitat von BLUESCREEN3D
    Dann wird aber die Spalte nicht auf NULL gesetzt sondern kriegt den Text "NULL"...
    Ich wollte ja nicht den Text "NULL" reinschreiben sondern den Wert NULL. Diesen ansich kann man einfügen. Halt NULL, sofern dieses erlaubt ist.

  8. #8
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Zitat Zitat von waxman
    Ich wollte ja nicht den Text "NULL" reinschreiben sondern den Wert NULL. Diesen ansich kann man einfügen. Halt NULL, sofern dieses erlaubt ist.
    http://dev.mysql.com/doc/refman/4.1/...ved-words.html
    Der Rest ist eine reine Einstellungssache deiner Tabelle
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  9. #9
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Hälst du es für besonders klug, url1 bis url7 reinzuschreiben?
    Ich würde eine weitere Tabelle urls machen, und in diese die Werte eintragen. Ggf. mit Reihenfolge. Also in etwa
    tabelle1 (id, irgendwelche_felder);
    urls(tabelle1_id, url, order_no)

    Kommt natürlich auf den Verwendungszweck an.
    NULL sind nie besonders schön noch entspricht es der Normalform. Wobei man es durchaus an manchen stellen verwenden kann, weil es performanter ist.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  10. #10
    Registrierter Benutzer Avatar von rideyourstyle
    Registriert seit
    23.09.2004
    Beiträge
    25
    in meinem fall halte ich es für inteligenter alles in einer tabelle zu speichern. es ist nämlich immer eine id, datum und ein text. dann kann man je nach dem noch einige bilder anfügen. so entspricht jeder eintrag einem neuen eintrag...
    _______________________________
    rideyourstyle.ch

  11. #11
    Registrierter Benutzer Avatar von yankee42
    Registriert seit
    15.04.2005
    Beiträge
    41
    wie waere es denn mit
    PHP-Code:
    for($i=1$i<7;$i++) if (${'name'.$i} !='NULL') ${'name'.$i} ="'${'name'.$i}'";
    $s "insert into $db_table ( datum, text, ip, url1, url2, url3, url4, url5, url6) values( '$datum', '$text', '$ip',$name1,$name2,$name3,$name4,$name5,$name6)"
    ungetestet, sollte aber funzen...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •