| 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: 14 let
|
|||
0