Autor Zpráva
DOonio
Profil *
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 *
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 *
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 *
A je v db povolené, aby ten sloupec byl null?
Kcko
Profil
Kajman:
A nemel bys ten return vracet jako NULL a ne jako retezec 'NULL'?
Nox
Profil
Kcko:
Ne, protože to má sloužit k zapsání do query, kde je to jako řetězec, má to správně
Tomas Tane
Profil *
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'].' ');
(u mě se jedná o podmínku)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0