Autor Zpráva
Ryan
Profil *
Ahoj rad bych se zeptal jak pomoci Isset osetrim prazdou promenou, kterou chci ulozit do databaze. Proste v pripade ze ma nejakou hodnotu tak se ulozi a v pripade ze ne tak se neulozi ale aby mi to nehazelo tu hlasku Notice: Undefined variable:
Dekuji za rady
I am
Profil *
if(isset($promena))
{
   if(strlen($promena)!=0)
   {
        prikazi k zapsání do db
   }
    else
    {
        promena sice exisutuje ale neobsahuje nic..
    };
};
Ryan
Profil *
Dekuji.
A jeste snad kdybych ji chtel ulozit i s nejakou hodnotou, a i jako prazdnou, tak by byl zapis jaky?
I am
Profil *
if(isset($promena))
{
zapis $promena do db.. 
};
Ryan
Profil *
Tak jeste jednou:
Mam ted tri promene ale do databaze mi to ulozi pouze kdyz jsou vsechny vyplnene jinak ne je to takhle dobre?
if (isset($a)) 
    {  
      if (isset($b))
         {     
            if (isset($c)) 
                {
                         $vysledek=mysql_query("INSERT INTO sort (id, obrazek, obrazek1, obrazek2) values (".$last_id.",'".$a."','".$b."','".$c."')");
                 }
         }
      }
Aesir
Profil
Ryan:

Nebo zjednodušenně
if (isset($a, $b, $c)) {

Vizte manuál.
Ryan
Profil *
No ale proc se mi to nezapise?
Ryan
Profil *
Zkysim to jeste jednou: $name je pole(ziskané z formulare), ktere prirazuji promenym $a a $b. Jestlize je vse zadane tak se zapis procede bez problemu, ale kdyz zadam ve formulari treba jen jednu hodnotu tak si to neskonci chybou ale do databaze se nic nezapise. Fakt nevim proc to nejde...

if ($key==0) 
      {
        $a=$name;
      }
if ($key==1) 
     {
       $b=$name;
     }
if (isset($a, $b)) {
$vysledek=mysql_query("INSERT INTO sort (id, obrazek, obrazek1) values (".$last_id.",'".$a."','".$b."')");
  }
Aesir
Profil
Ryan:
Moment, $name je pole? Určitě? :) Jestli ano, tak potom je ten dotaz do databáze nesmysl. Což takhle někde vystavit celý skript, ať víme, o co se pokoušíte - šlo by to?
Ryan
Profil *
script:
<?php 
  $BudemeZobrazovat=true;
    if (isSet($_POST["odeslat"])) // tak už se odesílalo a musíme kontolovat
       {
       $BudemeZobrazovat=false;
       include ('config.php');
       $last_id=mysql_insert_id(); 
       foreach ($_FILES["obrazek"]["error"] as $key => $error) 
          {
          if ($error == UPLOAD_ERR_OK) 
          {
            $size = $_FILES["obrazek"]["size"][$key];
            $tmp_name = $_FILES["obrazek"]["tmp_name"][$key];
            $name = $_FILES["obrazek"]["name"][$key];
if ($key==0) 
      {
       $a=$name;
      }
             
if ($key==1) 
   {$b=$name;
   }
move_uploaded_file($tmp_name, "../sortiment/$name");
           }
          }
          
if (isset($a, $b)) {
$vysledek=mysql_query("INSERT INTO sort (id, obrazek, obrazek1) values (".$last_id.",'".$a."','".$b."')");
  }
Aesir
Profil
Ryan:
Aha, už to chápu...pokus o upload dvou souborů. V tom případě odpověď na
ale kdyz zadam ve formulari treba jen jednu hodnotu tak si to neskonci chybou ale do databaze se nic nezapise. Fakt nevim proc to nejde...
je jednoduchá: Protože žádnou chybu nevyvovláte :)
if (isset($a, $b)) {
    $vysledek=mysql_query("INSERT INTO sort (id, obrazek, obrazek1) values (".$last_id.",'".$a."','".$b."')");
} else {
    // jeden ze souborů nemáme
}
Ryan
Profil *
Jo to chapu ale ja bych chtel aby se mi to do te databaze zapsalo i kdyz nebudou oba dva vyplnene ale bude vyplne treba jen jeden. to nejde?
Aesir
Profil
Ryan:
Aha :) Tak si nazačátku inicializujte proměnné $a a $b s default hodnotou a před vložením do databáze už nemusíte dělat kontrolu.
Ryan
Profil *
Tak jsem zkusil toto:
...
$a=0;
$b=0;
if ($key==0) 
      {
      $a=$name;
      }
if ($key==1) 
   {$b=$name;
   }
move_uploaded_file($tmp_name, "../sortiment/$name");
...

Ted mi to jde, kdyz nevyberu soubor je v databazi 0 ale abych docilil toho ze tam nebude vubec nic ale presto se to zapise?
Aesir
Profil
Ryan:
Vložíte tam to, čím máte "nic" definováno. Že by null nebo prázdný řetězec?
Ryan
Profil *
Jo tak takhle zkusil sem to pro ctyri soubory a jeste zrada:
$a='';
$b='';
$c='';
$d='';

if ($key==0)
{
$a=$name;
}
if ($key==1)
{
$b=$name;
}
if ($key==2)
{
$c=$name;
}
if ($key==3)
{
$d=$name;
}
move_uploaded_file($tmp_name, "../sortiment/$name");
}
}
echo $a,$b,$c,$d;
Takto kdyz zadam treba prvni dva soubory tak uz mi to vypise jenom ten druhy, Jak to?
Aesir
Profil
Ryan:
Kde přesně v kódu máte tu inicializaci proměnných a, b, c, d? :)
Ryan
Profil *
<?php 
  $BudemeZobrazovat=true;
    if (isSet($_POST["odeslat"])) // tak už se odesílalo a musíme kontolovat
       {
       $BudemeZobrazovat=false;
       include ('config.php');
       $last_id=mysql_insert_id(); 
       foreach ($_FILES["obrazek"]["error"] as $key => $error) 
          {
          if ($error == UPLOAD_ERR_OK) 
          {
            $size = $_FILES["obrazek"]["size"][$key];
            $tmp_name = $_FILES["obrazek"]["tmp_name"][$key];
            $name = $_FILES["obrazek"]["name"][$key];
$a='';
$b='';
$c='';
$d='';

if ($key==0) 
   {
    $a=$name;
   }
if ($key==1) 
   {
    $b=$name;
   }
if ($key==2) 
   {
    $c=$name;
   }
if ($key==3) 
   {
    $d=$name;
   }
move_uploaded_file($tmp_name, "../sortiment/$name");
           }
         }
echo $a,$b,$c,$d;
                    $vysledek=mysql_query("INSERT INTO sort (id, obrazek, obrazek1, obrazek2, obrazek3) values (".$last_id.",'".$a."','".$b."','".$c."','".$d."')") or die(mysql_error(mysql_errno()));
}
if ($BudemeZobrazovat):    
?>        
        <form method="post" name="upload" action="<?php echo $_SERVER["PHP_SELF"]?>" enctype="multipart/form-data">
         Obrázek:
     <?php     for($i = 1; $i <= 4; $i++) { echo $i.'. <input type="file" name="obrazek[]"><br>'."\n"; } ?>
          <input type="hidden" name="odeslat" value="true">
          <input type="submit" name="upload" value="Uložit">
        </form>
        
<?php endif;?>
Ryan
Profil *
Tak sem je presunul pred
 foreach ($_FILES["obrazek"]["error"] as $key => $error)
a vypada to ze to funguje.
Diky moc za rady
igamenir
Profil
Ryan
Ahoj rad bych se zeptal jak pomoci Isset osetrim prazdou promenou, kterou chci ulozit do databaze. Proste v pripade ze ma nejakou hodnotu tak se ulozi a v pripade ze ne tak se neulozi ale aby mi to nehazelo tu hlasku Notice: Undefined variable:

k tomuhle jen tak mimochodem slouží funkce empty


jinak bych to řešil jednoduše
...
if ($key==0) {
  if (!empty($name)) $a=$name;
  else $a = '';
}
...


a pokud bys chtěl machrovat, tak všechny ty podmínky můžeš přepsat do:
if (!empty($name)) ${chr(0x61+$key)} = $name;
else ${chr(0x61+$key)} = '';
Ryan
Profil *
Diky ale tomuhle teda moc nerozumim. Co znamena ${chr(0x61+$key)} ?
igamenir
Profil
0x61 je kód malého a
takže k tomu připočte tvoje key a udělá z toho písmeno, takže 0 => a, 1 => b, 2 => c atd.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0