Autor | Zpráva | ||
---|---|---|---|
janaK Profil * |
#1 · Zasláno: 10. 7. 2008, 14:35:52
Dobrý den, už několik hodin řeším vkládání záznamu do databáze přes formulář v html, a vkládání obsluhuju pomocí PHP. Problém mám s hodnotami NULL, uživatel totiž nemusí zadat některé položky ve formuláři a tím pádem potřebuji do databáze vložit hodnotu NULL.
tzn. pokud není hodnota zadána...if ($date == null){$date = 'null';} else {$date = $_POST["date"];} -> tak nastavím promennou na hodnotu null, v opačném případě ji přiřadím hodnotu z formuláře. dále pak použiji dotaz .. $prikaz=MySQL_Query("INSERT INTO game (name, type, date, registration) VALUES ('$name', '$type', '$date', '$registration');"); jenže při vkládání hodnoty NULL do políčka v databázi, která je číselného nebo datumového typu, mi to nefunguje :-( vůbec nevím jak to řešit, do příkazu asi těžko budu vkládat nějakou funkci.. nebo ano? zkoušela jsem i místo apostrofů uvozovky s lomítkama ale nic... |
||
Fantasta Profil |
#2 · Zasláno: 10. 7. 2008, 14:39:50 · Upravil/a: Fantasta
zkus if ($date == "")
Hodnotu null v podmínce jsem neviděl ;) |
||
lamka2 Profil |
#3 · Zasláno: 10. 7. 2008, 14:43:48
$date=$_POST["date"];
if(empty($date)) $date=""; potom staci klasicky insert a null sa vlozi same ale musis mat v databazy nastavene aby mohlo byt aj null |
||
janaK Profil * |
#4 · Zasláno: 10. 7. 2008, 15:07:11
tohle mi nepomůže, ty hodnoty null mi fungují, problém je v tom, že v insertu nesmí být hodnota NULL v uvozovkách či apostrofech, jinak to neuloží...
jde o to, že když dám: $date = 2008-05-05 INSERT INTO game( name, date ) VALUES ( '$name', '$date') - funguje, datum musí být v uvozovkách, ale když, uživatel tu hodnotu nezdadá tzn. $date = Null INSERT INTO game( name, date ) VALUES ( '$name', '$date') - nefunguje $date = Null INSERT INTO game( name, date ) VALUES ( '$name', $date) - funguje, odstranila jsem uvozovky u date, vkládá se tam null hodnota, ta musí být bez uvozovek, ale pokud $date nabyde datumu, insert nebude fungovat znovu :-( |
||
Fantasta Profil |
#5 · Zasláno: 10. 7. 2008, 15:28:53
$date = Null
INSERT INTO game( name, date ) VALUES ( '$name', '$date') - nefunguje Ono taky jestli máš v databázi datum, tak výchozí budou nuly - 0000-00-00, tak tudíž hodnota Null tam neplatí. Nevím proč tam mermomocí chceš dávat 'Null' if ($date == '"" {$date = "'';} nebo snad i if ($date == '"" {$date = "0000-00-00'';} |
||
janaK Profil * |
#6 · Zasláno: 10. 7. 2008, 16:00:30
no ty prázdný uvozovky mi do toho políčka s datum taky nejdou, takže jedině ty nuly... to mě nenapadlo! takhle bych to vyřešit mohla! i časem! tak díkec!!!!
|
||
Časová prodleva: 2 měsíce
|
|||
Densha Profil * |
#7 · Zasláno: 20. 9. 2008, 01:33:56
...VALUES('NULL' ... v INSERTU znamená, že se do databáze uloží řetězec s obsahem NULL, tedy znaky N-U-L-L (proto to také nefunguje jinde, než nad řetězcovými typy), ne hodnota NULL, ta musí být zapsána bez apostrofů, tedy ...VALUES(NULL, 'blah', 'blah'....
|
||
BetaCam Profil |
#8 · Zasláno: 20. 9. 2008, 02:24:35
janaK
Tohle by šlo možná řešit i normální podmínkou : ("INSERT INTO game( name, date ) VALUES ( '$name', ".($date === NULL ? FALSE : '\''.$date.'\'').")"); za funkčnost a správnost v tuto hodinu neručím. |
||
cahik Profil * |
#9 · Zasláno: 20. 9. 2008, 08:21:26
vzdyt reseni tu JanaK v podstate napsala sama, jen je potreba to hodit do podminky v phpcku. proste pokud bude promenna $date prazdna tak pouzijes verzi INSERT INTO game( name, date ) VALUES ( '$name', $date) no a pokud bude obsahovat datum tak INSERT INTO game( name, date ) VALUES ( '$name', '$date'). obycejna podminka if else,vubec nic sloziteho.
|
||
Časová prodleva: 17 let
|
0