Autor Zpráva
omfo
Profil
Ahoj, chtěl bych poprosit o radu. Odesláním formuláře získám tři pole, mnozstvi, nazev, cena. Tyto pole bych chtěl uložit do DB (MySQL).
    
<form action="akce" method="post">
<input name="mnozstvi[]" type="input">
<input name="nazev[]" type="input">
<input name="cena[]" type="input">
</form>
    
foreach($_POST['mnozstvi'] as $mnozstvi) {
  $query = "INSERT INTO tabulka (mnozstvi) VALUE ('$mnozstvi')";
  $result = mysql_db_query($db, $query);
}
Nevím jak uložit všechny pole najednou. Tak aby první hodnoty z polí byly v DB na jednom řádku.
Díky
juriad
Profil
for ($i = 0; $i < count($_POST['mnozstvi']); $i++) {
  $m = mysql_real_escape_string($POST['mnozstvi'][$i]);
  $n = mysql_real_escape_string($POST['nazev'][$i]);
  $c = intval($POST['cena'][$i]);
  $query = "INSERT INTO tabulka (mnozstvi, nazev, cena) VALUE ('$m', '$n', $c)";
  $result = mysql_db_query($db, $query);
}
Juraj Hajdúch
Profil
Neoveroval som na localhoste, ale malo by to byť takto:
$count = count($_POST["mnozstvi"]); // alebo $_POST["nazev"] alebo $_POST["cena"], je to jedno
for($i = 0; $i < $count; $i++){
  $query = "INSERT INTO tabulka (mnozstvi, nazev, cena) VALUES ('$_POST["mnozstvi"][$i]', '$_POST["nazev"][$i]', '$_POST["cena"][$i]')";
  $result = mysql_db_query($db, $query);
}
Pozor na ošetrenie vstupných premenných (SQL injection), pozri viac na http://php.net/manual/en/mysqli.real-escape-string.php
Pozor, rodina funkcií mysql_* bude fungovať len nejaký čas a potom sa z PHP nadobro odstráni

EDIT: Oops, juriad ma predbehol :)


juriad:
VALUES, nie VALUE
omfo
Profil
juriad
Super, díky moc hned to vyzkouším.

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