Autor | Zpráva | ||
---|---|---|---|
Ryan Profil * |
#1 · Zasláno: 30. 1. 2009, 07:27:00
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 * |
#2 · Zasláno: 30. 1. 2009, 08:04:29
if(isset($promena)) { if(strlen($promena)!=0) { prikazi k zapsání do db } else { promena sice exisutuje ale neobsahuje nic.. }; }; |
||
Ryan Profil * |
#3 · Zasláno: 30. 1. 2009, 08:39:35
Dekuji.
A jeste snad kdybych ji chtel ulozit i s nejakou hodnotou, a i jako prazdnou, tak by byl zapis jaky? |
||
I am Profil * |
#4 · Zasláno: 30. 1. 2009, 08:43:46
if(isset($promena)) { zapis $promena do db.. }; |
||
Ryan Profil * |
#5 · Zasláno: 30. 1. 2009, 09:13:50
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 |
#6 · Zasláno: 30. 1. 2009, 09:48:04
|
||
Ryan Profil * |
#7 · Zasláno: 30. 1. 2009, 09:53:49
No ale proc se mi to nezapise?
|
||
Ryan Profil * |
#8 · Zasláno: 30. 1. 2009, 10:18:19
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 |
#9 · Zasláno: 30. 1. 2009, 10:52:07
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 * |
#10 · Zasláno: 30. 1. 2009, 11:01:49
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 |
#11 · Zasláno: 30. 1. 2009, 11:13:31
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 * |
#12 · Zasláno: 30. 1. 2009, 11:14:54
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 |
#13 · Zasláno: 30. 1. 2009, 11:18:13
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 * |
#14 · Zasláno: 30. 1. 2009, 11:22:42
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 |
#15 · Zasláno: 30. 1. 2009, 11:29:42
Ryan:
Vložíte tam to, čím máte "nic" definováno. Že by null nebo prázdný řetězec? |
||
Ryan Profil * |
#16 · Zasláno: 30. 1. 2009, 11:38:44
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 |
#17 · Zasláno: 30. 1. 2009, 11:54:14
Ryan:
Kde přesně v kódu máte tu inicializaci proměnných a, b, c, d? :) |
||
Ryan Profil * |
#18 · Zasláno: 30. 1. 2009, 12:02:10
<?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 * |
#19 · Zasláno: 30. 1. 2009, 12:05:53
Tak sem je presunul pred
foreach ($_FILES["obrazek"]["error"] as $key => $error) Diky moc za rady |
||
igamenir Profil |
#20 · Zasláno: 30. 1. 2009, 12:14:09
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 * |
#21 · Zasláno: 30. 1. 2009, 12:17:50
Diky ale tomuhle teda moc nerozumim. Co znamena ${chr(0x61+$key)} ?
|
||
igamenir Profil |
#22 · Zasláno: 30. 1. 2009, 12:40:47
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. |
||
Časová prodleva: 16 let
|
0