Autor Zpráva
speacker
Profil *
Mám input, kam napíšu číslo (např n) a n-krát se vykoná příkaz, který mi vypíše
několik inputů. Kousek kódu

if (isset($_POST['count'])){

for($i = 1; $i <= $_POST['count'];$i++){

echo "<tr>";
echo "<td width="7%"><input type="text" size="6"
name="a".$i."" /></td>";
echo "<td width="25%"><input type="text" size="20"
name="b".$i."" /></td>";
echo "</tr>";
}
}

A teď potřebuju záznamy uložit do DB, ale nedokážu sestavit správný skript, aby
se tam vložili všechny prvky v polích. Pokud bude n=5, udělá se mi 5 inputů pod
sebe, chci, aby se do DB uložilo 5 řádků se všemi hodnotami.

Tzn. mam 2 sloupce A-B a potrebuju ulozit a1-b1; a2-b2; a3-b3; ...

Díky za každou radu, Speacker
25k
Profil *
a k cemu to ma slouzit? pole do db muzes ulozit pomoci fce serialize();
speacker
Profil *
Potřebuju si sám zvolit, kolik budu záznamů potřebuju uložit a podle toho vyvolám tolikrát ten kód. A pak klasický INSERT INTO.... Ale tady nastává problém :)
krteczek
Profil
jo takhle to má být pět nových řádků v databázi :-)
takže názvy jednotlivých polí formuláře mají tvar: a1, b1, a2, b2, ...?
skus použít pole a[] >>> <input type="text" name="a[]"...
tak a potom něco na ten způsob:
for($i = 0; $i < count($a); $i++)
{
//nejprve si ošetři vstupní hodnoty a[$i] a b[$i]
$dotaz = "INSERT INTO `tabulka` (`jmeno`,`popis`) values ('" . addslashes($a[$i]) . "', '" . addslashes(b[$i]) . "')";
...
}

krteczek
speacker
Profil *
Tak jsem se dostal k takovému šílenému kódu :

inputy jsou pojmenovany a[$i], b[$i]

$acko=$_POST['a'];
foreach ($acko as $key1 => $a){
$becko=$_POST['b'];
foreach ($becko as $key2 => $b){

for($i = 0; $i < count($a); $i++){
for($i = 0; $i < count($b); $i++){


$vysledek = mysql_query("INSERT INTO tabulka (a,b) VALUES('" . addslashes($a[$i]) . "', '" . addslashes($b[$i]) . "')");
}}
}}

Chybu to sice nevypíše, ale nic se neuloží (ani se tomu nedivim...) Poradíte ještě někdo, díky :D
krteczek
Profil
Nepochopil jsi mne...
Názorný příklad:

<?php
$n = 5;
if(isset($_POST))
{
echo var_dump($_POST) . "<br><br> ";
}
for($i = 0; $i < $n; $i++)
{
$form .= " " . 'Polozka a[' . $i . ']<input type="text" name="a[]" value="' . @$_POST['a'][$i] . '"><br>Polozka b[' . $i . ']<input type="text" name="b[]" value="' . @$_POST['b'][$i] . '"><br><br>';
}
$form = '<form method="post" action="' . $_SERVER['PHP_SELF'] . '">' . $form . '<input type="submit" name="ok" value="ulozit"></form>';
echo $form;
?>

snad tohle pochopíš ;-)
krteczek
speacker
Profil *
Dik moc, ale stejně je tu ještě jeden problém... V DB se to neukládá tak jak potřebuju. Teď se uloží všechny a[] se vsemi b[] ( třeba a[1] + b[1], a[1] + b[2], a[2] + b[1],....) a já potřebuju jen stejný čísla k sobě :-(
krteczek
Profil
speacker:

for($i = 0; $i < count $a); $i++)
{
$dotaz = "INSERT INTO `tabulka` (`a`,`b`) values ('" . $_POST['a'][$i] . "', '" . $_POST['b][$i] . "') ";
//uložíš do db
}

Pamatuj na ošetření vstupů...
krteczek
speacker
Profil *
Díky moc za ochotu a trpělivost :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.