Autor | Zpráva | ||
---|---|---|---|
DOonio Profil * |
#1 · Zasláno: 4. 4. 2010, 20:41:21
Tak jsem tu znova,
mám formulář, kde mám mám 3 povinné hodnoty(NOT NULL) a další 2 nepovinné. A řeším když uživatel vyplní jen ty poviné tak formulář se v klidu odešle, ale potom mám v databázi na těch nepoviných prázndý buňky, a chci nějak ošetřit,že když nic do té nepoviné kolonky nevypíše, tak aby se tamv té databázi vložila hodnota NULL(což bude pro mě jasně identifikovaný, že to zatím enbylo vyplněno) Já jsem to zatím vyřešil takhle: if (!empty($_POST)) { if (!empty($_POST['jmeno']) && !empty($_POST['prijmeni']) && { $sql= "INSERT INTO osoby (jmeno, prijmeni, prezdivka, id_adresy) VALUES ('". nulova($_POST['prezdivka'])."','". $_POST['prijmeni']."','". $_POST['jmeno']."','". $_POST['id_adresy']."')";} function nulova($hodnota){ if (!empty($hodnota)){ return $hodnota;} else {return NULL;} //a tohle řeším, jak vložit do té buňky NULL, když to enchám takhle, tak v databázi mám potom jen prázdnou buňku Je na to nějaká vychytávka, která mě při nesplnění podmínky, vrátí NULL. |
||
Kajman_ Profil * |
#2 · Zasláno: 4. 4. 2010, 20:50:56
function nulova($hodnota){ if (!empty($hodnota)){ return "'".mysql_real_escape_string($hodnota)."'";} else {return 'NULL';} $sql= "INSERT INTO osoby (jmeno, prijmeni, prezdivka, id_adresy) VALUES (". nulova($_POST['prezdivka']).",'". $_POST['prijmeni']."','". $_POST['jmeno']."','". $_POST['id_adresy']."')";} |
||
DOonio Profil * |
#3 · Zasláno: 4. 4. 2010, 22:31:30
Kajman:
Díky za rychlo odpověď, ale výsledek je pořád stejný, když třeba nevyplním kolonku prezdivka, tak se do databázové tabulky nevyplní nic(prostě prázdná buňka), a když třeba nevyplním id_adresy, tak se do té buňky napíše 0. |
||
Kajman_ Profil * |
#4 · Zasláno: 5. 4. 2010, 15:55:10
A je v db povolené, aby ten sloupec byl null?
|
||
Kcko Profil |
#5 · Zasláno: 5. 4. 2010, 16:04:31
Kajman:
A nemel bys ten return vracet jako NULL a ne jako retezec 'NULL'? |
||
Nox Profil |
#6 · Zasláno: 5. 4. 2010, 16:12:42
Kcko:
Ne, protože to má sloužit k zapsání do query, kde je to jako řetězec, má to správně |
||
Časová prodleva: 2 roky
|
|||
Tomas Tane Profil * |
#7 · Zasláno: 21. 4. 2012, 22:27:16
DOonio:
Chvíli jsem hledal řešení na podobný problém a našel jsem částečné řešení v tom že pro daný sloupec nastavím výchozí hodnotu NULL přímo v DB. Poté už jen vracím funkcí DEFAULT bez uvozovek. To mi v DB vytvoří NULL hodnotu pro daný sloupec. viz náhled: if($_POST['rodic'] !== "hl") mysql_query('UPDATE kategorie SET kategorie="'.$_POST['kategorie'].'", rodic="'.$_POST['rodic'].'" WHERE id='.$_POST['id'].' '); else mysql_query('UPDATE kategorie SET kategorie="'.$_POST['kategorie'].'", rodic=DEFAULT WHERE id='.$_POST['id'].' '); |
||
Časová prodleva: 11 let
|
0