Zadejte hledaný výraz...

Vice checkboxu a zapis hodnot do databaze

vigel
verified
rating uzivatele
2. 4. 2013 20:01:58
Ahoj, tentokrat neporebuji pomoc a zakladam tento prispevek za ucelem pomoc druhym.
Dlouho jsem hledal jak zprovoznit zapis hodnoty z vice checkboxu do databaze, pak jsem na to prisel tak se podelim.
vypis checkboxu z hodnotami z db:
while($row = mysql_fetch_array($result)) {
$id = $row;
$podkategorie = $row;
echo "";
echo $podkategorie."
"."n";
}
takto vypadat zdrojak v html
a zde zpracovani a zapis do db :
if (IsSet($_POST)) {
foreach ($_POST as $id_pod) {
// STRUKTRURA --- id, id_kategorie, id_podkategorie, kod, nazev, cena, pocet, celkemcenaprodej,celkemcenanakup, cas
mysql_query("INSERT INTO produkty VALUES (
'',
'$id_kategorie',
'$id_pod',
'$kod',
'$nazev',
'$nakupnicena',
'$prodejnicena',
'$pocet',
'$celkemcenaprodej',
'$celkemcenanakup',
'".time()."')");
}
// po uspesnem vlozeni
MySQL_Close();
unset($_POST);
$_SESSION =1;
header ("Location: pridat.php", true, 302);
exit;
}
SNAD to nekomu pomuze, za pripadne namety budu rad
2. 4. 2013 20:01:58
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885919
Jan Stejskal
verified
rating uzivatele
(7 hodnocení)
2. 4. 2013 20:22:49
Já jen doufám, že tento kód nikdo nepoužije. Zkuste hádat proč.
2. 4. 2013 20:22:49
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885918
Nechci ti kazit iluze, ale takto opravdu nee... !!!
2. 4. 2013 20:24:40
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885917
tomve
verified
rating uzivatele
(22 hodnocení)
2. 4. 2013 20:47:46
snaha se bere, ale ne, aspoň něco jinak
radši
jak jsem něco opomněl nebo zblb, tak srry
2. 4. 2013 20:47:46
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885916
Bacon
verified
rating uzivatele
(2 hodnocení)
2. 4. 2013 21:47:01
Pro ukládání hodnot, ve kterých není třeba později hledat, doporučuji serialize / unserialize.
Tímto způsobem ukládá nastavení (nejen checkboxy) do databáze WordPress a zdá se mi to jako efektivní.
2. 4. 2013 21:47:01
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885915
vigel
verified
rating uzivatele
2. 4. 2013 21:47:26
dekuji za pripominky:
1/ osetrene to snad mam nedaval jsem sem cely kod:
atd....
2/ v INSERTU potrebuji vsechny polozky (vkladam novy produkt)
3/ unset POST ... ani nevim
4/ SESSION mi pomaha zobrazit zpravu o ulozeni do db
5/ presmerovani s 302 je kvuli chrome ( ten si pamatuje POST i po presmerovani a po kliknuti na F5 se dotaz znovu vklada - a proto vlastne i ten UNSET (sychtr))
6/ exit ??
2. 4. 2013 21:47:26
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885914
Bossini
verified
rating uzivatele
(3 hodnocení)
2. 4. 2013 22:07:01
mysql_real_escape_string je deprecated, takže spíš mysqli_real_escape_string pro input do sql htmlspecialchars() pro output.
ten exit nikdy neproběhne, a uspesne ulozeni muzes zjistit if(mysql_query("") == true);
a to IsSet - co to je?:-D (způsob zapisu).
--oprava
2. 4. 2013 22:07:01
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885913
t-pack25
verified
rating uzivatele
2. 4. 2013 22:11:45
Bossini
to snáď nemyslíš vážne s tým htmlspecialchars()
IsSet - pozri v php manualy
2. 4. 2013 22:11:45
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885912
tomve
verified
rating uzivatele
(22 hodnocení)
2. 4. 2013 22:13:58
Napsal Bossini;931657
mysql_real_escape_string je deprecated, takže spíš htmlspecialchars().
a to IsSet - co to je?:-D
za to bych vraždil, sice až od 5.5.0,ale i tak ... co si pamatuju, tak zrovna htmlspecialchars rád sundaval cz znaky
isset ->asi chtěl if, jakože zkontrolovat existence obsahu
2. 4. 2013 22:13:58
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885911
t-pack25
verified
rating uzivatele
2. 4. 2013 22:19:22
mysql_real_escape_string je deprecated, pretože sa odporúča používať mysqli, teda napríklad mysqli_real_escape_string ak sa ma jednať o procedurálny prístup.
a isset je bežne používané, neviem čo je natom divné :) http://php.net/manual/en/function.isset.php
2. 4. 2013 22:19:22
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885910
Bossini
verified
rating uzivatele
(3 hodnocení)
2. 4. 2013 22:22:34
mě nešlo o funkci ale o způsob zapisu IsSet.
2. 4. 2013 22:22:34
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885909
tomve
verified
rating uzivatele
(22 hodnocení)
2. 4. 2013 22:26:19
Napsal vigel;931648
dekuji za pripominky:
1/ osetrene to snad mam nedaval jsem sem cely kod:
atd....
2/ v INSERTU potrebuji vsechny polozky (vkladam novy produkt)
3/ unset POST ... ani nevim
4/ SESSION mi pomaha zobrazit zpravu o ulozeni do db
5/ presmerovani s 302 je kvuli chrome ( ten si pamatuje POST i po presmerovani a po kliknuti na F5 se dotaz znovu vklada - a proto vlastne i ten UNSET (sychtr))
6/ exit ??
1) tak pokud to tu dáváš jako návod, dej to celé, tzn. ošetřené
2) ano, ale když budeš chtít filtraci podle aktivních produktů, tak chybí sloupec např. aktivni ... jak ho přidáš, tak znefukčníš insert (v insertu hodnota pro sloupec potom být nemusí, pokud nastavíš defaultní hodnotu pro sloupec) + do budoucna se ti to bude hodit
3) nevíš, nepoužit
4) nestačí
sice už ten or die(mysql_error()) co jsem dál za insert tě nepustí dál, neuloží + napíše, kde je chyba
5) proč na té stránce s insertem nepokračuješ dál? bys nemusel mít 302
6) exit se neuskuteční kvůli 302; exit = ukončí skript
http://www.linuxsoft.cz/php/
http://9lessons.info/
domácí úkoly
---------- Post added 02.04.2013 at 22:28 ----------
Napsal t-pack25;931667
mysql_real_escape_string je deprecated, pretože sa odporúča používať mysqli, teda napríklad mysqli_real_escape_string ak sa ma jednať o procedurálny prístup.
:/
2. 4. 2013 22:26:19
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885908
vigel
verified
rating uzivatele
3. 4. 2013 10:57:41
Bossini : co je spatneho na IsSet ?
Tomve :
1/ Tento příspěvek byl zalozen jako "pomoc" pro praci s CHECKBOXi.+ cele je to pod chranenym pristupem takze nikdo jiny nez administrator se tam "nedostane".
2/ cely script slouží jako evidence zasob a pomoc při inventure.(takze aktivni/neaktivni produkty tam nebudou)
3/ souhlas /upraveno
4/ takto jsem to puvodne mel, ale problém nastal prave kvůli chrome kdy stacilo dat F5
...
pro lepsi predstavu sem dam cely script
include '../protection.php'; //ochrana proti nepovolanému pristupu
include '../../config/conf.php'; //pripojeni db
include '../../fce.php'; // funkce
?>
admin

Přidat produkt ?


if (isset($_SESSION)) {
echo "
Položka přidána do databáze
";
unset($_SESSION);
}
if (isset($_SESSION)) {
echo "
Nejméně kategorie, název a nákupní cena musí být vyplněno !!!
";
unset($_SESSION);
}
if (IsSet($_POST)) {
if(!empty($_POST) && !empty($_POST) && !empty($_POST)) {
$id_kategorie = mysql_real_escape_string(stripslashes($_POST));
//$id_podkategorie =$_POST;
$kod = mysql_real_escape_string(stripslashes($_POST));
$nahradit = array("-","/",""",".","+","*",","," ");//nechtene znaky v kodu
$kod = str_replace($nahradit,"", $kod); // odstraneni nechtenych znaku
if (empty($kod)) {
$kod ="Nezadán";
}
$nazev = mysql_real_escape_string(stripslashes($_POST));
$nakupnicena = mysql_real_escape_string(stripslashes($_POST));
$prodejnicena = mysql_real_escape_string(stripslashes($_POST));
$pocet = mysql_real_escape_string(stripslashes($_POST));
//osetreni desetineho znamenka v db , a .
$nakupnicena = str_replace(",",".", $nakupnicena);
$prodejnicena = str_replace(",",".", $prodejnicena);
$celkemcenaprodej = $prodejnicena*$pocet;
$celkemcenanakup = $nakupnicena*$pocet;
if (IsSet($_POST)) {
foreach ($_POST as $id_pod) {
// STRUKTRURA --- id, id_kategorie, id_podkategorie, kod, nazev, cena, pocet, celkemcenaprodej,celkemcenanakup, cas
mysql_query("INSERT INTO produkty VALUES (
'',
'$id_kategorie',
'$id_pod',
'$kod',
'$nazev',
'$nakupnicena',
'$prodejnicena',
'$pocet',
'$celkemcenaprodej',
'$celkemcenanakup',
'".time()."')");
}
// po uspesnem vlozeni
MySQL_Close();
unset($_POST);
$_SESSION =1;
header ("Location: pridat.php", true, 302);
exit;
}
mysql_query("INSERT INTO produkty VALUES (
'',
'$id_kategorie',
'0',
'$kod',
'$nazev',
'$nakupnicena',
'$prodejnicena',
'$pocet',
'$celkemcenaprodej',
'$celkemcenanakup',
'".time()."')");
// po uspesnem vlozeni
MySQL_Close();
unset($_POST);
$_SESSION =1;
header ("Location: pridat.php", true, 302);
exit;
}
else { // pokud neni vyplnena ve formu nazev a cena
MySQL_Close();
$_SESSION =1;
header ("Location: pridat.php", true, 302);
exit;
}
}
$vysledek = mysql_query("SELECT * FROM produkty ORDER BY cas DESC LIMIT 10");
?>
Posledních 10 nově přidaných
while ($vypis = mysql_fetch_assoc($vysledek)) {
$kod = $vypis;
$nazev = $vypis;
$nakupnicena = $vypis;
$prodejnicena = $vypis;
$celkem = $vypis;
$pocet = $vypis;
$marze = $prodejnicena-$nakupnicena;
echo ""."n";
echo ""."n";
echo ""."n";
echo ""."n";
echo ""."n";
echo ""."n";
echo ""."n";
echo ""."n";
echo ""."n";
}
echo "
Kód Název Nákupní cena Prodejní cena Peníze ve zboží Počet kusů Marže 1/ks
".$kod."".$nazev."".$nakupnicena."".$prodejnicena."".$celkem."".$pocet." if ($marze > 0) {
echo " style= color:green;";
}else{
echo " style= color:red;";
}
echo ">".$marze."
";
?>

Zpět do administrace.
Odhlásit !
include '../../footer.php';
?>
toto je defakto muj první php script takze me nekamenujte, ale pripadne rady od zkusenych rad privitam.
3. 4. 2013 10:57:41
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885907
Basnicka otazka k zamysleni ... jak muzes bez jakekoliv podminky rict, ze zaznam byl "uspesne vlozen" ?
Nyni ti to funguje tak, ze kdyz $_POST) byl zpracovan, $_SESSION = 1; // coz je divne
A rada, ktera ti usetri hromadu casu... na vse co pouzijes vic nez 2x si udelej funkci ... napr. to escapovani
3. 4. 2013 11:25:01
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885906
vigel
verified
rating uzivatele
3. 4. 2013 12:31:21
ale vzdyt tam je podminka : pokud je odeslan formular
tal zpracuj a pokud je oznacena podkategorie
tak INSERT s cislem podkategorie jinak podkategorie=0
to cele - jinak
2/ ve fukcich jeste trochu tapu, muzes to prosim priblizit jak udelat funkci napr. na to escapovani
/// EDIT:tak uz to asi mam
function escape($value){
mysql_real_escape_string(stripslashes($value));
}
3. 4. 2013 12:31:21
https://webtrh.cz/diskuse/vice-checkboxu-a-zapis-hodnot-do-databaze#reply885905
Pro odpověď se přihlašte.
Přihlásit