Autor | Zpráva | ||
---|---|---|---|
alan113 Profil * |
#1 · Zasláno: 11. 7. 2012, 11:30:00
zdravím,dělám si registraci,a narazil jsem na checkboxy..
mám tam zájmy,a udělaný je do checkboxu... <INPUT type="checkbox" name="zaliby[]" value="Pohybové aktivity">pohybové aktivity <INPUT type="checkbox" name="zaliby[]" value="Sport">sport <INPUT type="checkbox" name="zaliby[]" value="cestování">cestování ... a insert mysql_query("INSERT INTO `uzivatele` VALUES( '', '{$_POST['login']}', '{$_POST['jmeno']}', '{$_POST['heslo']}', ... jak udělat aby když zaškrtnu třeba 3checkboxy se mě uložily do db?a aby se pod nima dělala nějaká mezera.. třeba sport cestování pole ... já jsem to zkoušel na nečisto v normálním souboru funkcí foreach..to mě šlo,jenže jak to zařadím do insertu? foreach($_POST["zaliby"] as $polozka) { $polozka } |
||
LaMMa Profil |
#2 · Zasláno: 11. 7. 2012, 11:36:56
//najprv osetrit postnute hodnoty foreach ($_POST as $key=>$value) { $_POST[$key] = mysql_real_escape_string($value); } $zaliby = ""; foreach($_POST["zaliby"] as $polozka) { $zaliby .= $polozka.'<br />'; } mysql_query("INSERT INTO `uzivatele VALUES( '', '{$_POST['login']}', '{$_POST['jmeno']}', '{$_POST['heslo']}', '{$zaliby}', ... |
||
Darker Profil |
#3 · Zasláno: 11. 7. 2012, 11:46:40 · Upravil/a: Darker
Radši si udělej další tabulku "zajmy". Do té potom vkládej jméno a zájem. Pokud pak budeš chtít znát všechny zájmy uživatele provedeš select:
SELECT zajem FROM `zajmy` WHERE username="pepa" Vkládat více informací do jedné buňky bývá zpravidla zcestné. Mysql je spíš zpomalí velké buňky než hodně buněk. |
||
alan113 Profil * |
#4 · Zasláno: 11. 7. 2012, 11:49:53
LaMMa:
píše mě to chybu Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in /home/.cz/registrace.php on line 22 Warning: Invalid argument supplied for foreach() in /home/.cz/registrace.php on line 25 |
||
Darker Profil |
#5 · Zasláno: 11. 7. 2012, 11:52:22 · Upravil/a: Darker
Namísto
$zaliby = ""; foreach($_POST["zaliby"] as $polozka) { $zaliby .= $polozka.'<br />'; } $zaliby = mysql_real_escape_string(implode("<br>",$zaliby)); alan113: „píše mě to chybu“ To jsem čekal. Oprav foreach ($_POST as $key=>$value) { $_POST[$key] = mysql_real_escape_string($value); } foreach ($_POST as $key=>$value) { if(is_string($value)) $_POST[$key] = mysql_real_escape_string($value); } A ještě bych ti rád připomněl, že bys tam měl mít kontrolu zda daná záliba existuje v systému. Jinak ti tam každý může poslat, co se mu zachce. |
||
LaMMa Profil |
alan113:
Jo ma nenapadlo, ze zaliby su pole :). Tak prve 4 riadky vynechaj a potom na mysql_real_escape_string($_POST['nieco']) uprav vsetky POSTy, ktore davas do db. A tie dalsie 4 riadky takto:
$zaliby = ""; foreach($_POST["zaliby"] as $polozka) { $zaliby .= mysql_real_escape_string($polozka).'<br />'; } Keď už tak, tak neukladať meno, ale id užívateľa [#5]aj tak sa da :) |
||
alan113 Profil * |
#7 · Zasláno: 11. 7. 2012, 11:58:20
super,už to jde:) díky moc chlapy:)
|
||
alan113 Profil * |
#8 · Zasláno: 11. 7. 2012, 14:31:35
tak ne..ještě se chci zeptat,jak ošetřit,že když nikdo nic nevyplní,tak se to odešle?jeliož když nic nevyplním tak mě to napíše chybu že neexistuje ten foreach
Notice: Undefined index: zaliby in /home/.cz/registrace.php on line 17 Warning: Invalid argument supplied for foreach() in /home/.cz/registrace.php on line 17 |
||
pcmanik Profil |
#9 · Zasláno: 11. 7. 2012, 14:42:34
alan113:
if (isset($_POST["zaliby"])) { $zaliby = ""; foreach($_POST["zaliby"] as $polozka) { $zaliby .= mysql_real_escape_string($polozka).'<br />'; } } |
||
Časová prodleva: 12 let
|
0