Mailinglisten-Archive |
Sebastian Tobias Mendel genannt Mendelsohn wrote: >> In eine MySQL-Tab soll etwas _aktualisiert_ werden, dabei kann der >> entsprechende Wert "x" oder eben NULL sein. >> >> ... >> $upd_bestellposition.= "erledigt = '".$erledigt."'"; >> ... >> >> ^ Geht ja nur, wenn $erledigt = "" oder "x" ist. Aber wie geht's wenn >> $erledigt = NULL? >> Muss ich dann in der Syntax eine Fallunterscheidung machen, eben ob NULL >> oder nicht NULL? > > achja, noch was, wenn denn nur x oder NULL in die spalte soll ginge es > auch so: > > ALTER TABLE `table` CHANGE `erledigt` `erledigt` ENUM('x') DEFAULT NULL > > und dann so: > > $upd_bestellposition .= "`erledigt` = ".$erledigt; > > erledigt sollte dann den Wert 1 oder NULL haben > > ergäbe also: > > `erledigt` = 1 > oder > `erledigt` = NULL > > is aber eigentlich schlechtes Design, denn wenn das Feld wirklich bloß > zwei werte haben soll, nämlich übersetzt Ja und Nein dann wäre entweder > ein Feld vom Typ Bool oder enum('0','1') (oder 'ja','nein' ... > 'yes','no') das richtige! ach verdamt, das mir immer noch was einfällt nachdem ich meine Mails verschickt habe, NULL ist in diesem fall auch aus einem weiteren Grund ein schlechter Wert, denn NULL bedeutet ja 'nicht definiert'/'undefiniert' oder 'nicht zutreffend' oder so was in der Art, da aber ein 'Auftrag' eigentlich immer nur 'erledigt' oder 'nicht erledigt' sein kann ist NULL hier falsch! kurz: NULL an dieser Stelle ist schlechtes DB-Design. -- Sebastian Mendel *www.warzonez.de* www.sebastianmendel.de | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive