předávání více proměnných

Ahoj,
mám stránku, na které si uživatel zvolí několik záznamů a s těmi může potom manipulovat. Záznamy se načtou do formulářových polí - to je bez problémů. Potom bych ale chtěl uložit změny ve zvolených záznamech a tam už narazím. Nevím jak předat proměnné z názvů polí do sql dotazu - když jde o jeden záznam, tak nemám problém, ale když je jich víc? Změnový sql už potom s pomocí implude a id záznamů udělám, ale jak načíst ostatní pole, třeba když bych chtěl udělat náhled před uložením?
No, snad to nepíšu moc zmateně....
Trochu jsem pokročil, ale stejně potřebuju poradit.
Když dám název každého formulářového pole jako name=´neco[]´ a potom na stránce se změnovým dotazem udělám něco jako
foreach ($neco as $nic) {
print "Něco: $nic.\n<br>";
}
tak se mi údaje krásně vypíšou. Ale jak je dostat do toho sql? Zkouším to nějak takhle, ale ne a ne se zadařit.
UPDATE table SET neco='$nic' WHERE id IN ('.implode(', ',$id).')

Mimochodem, dá se z foreach vypsat více proměnných? Mám v tom formuláři šest položek a zajímalo by mě, jestli musím udělat šestkrát foreach nebo jestli to jde nějak vepsat do jednoho.
update je na změnu dat ne na ukládání
foreach je pro každé pole jedno, dokupy to přes foreach nejde, existuje ale fce each(), která by se dala použít ve while cyku. Ale to je pak složitější s ošetřováním konce, konzultuj manuál. Pokud máš zaručeno, že každé pole má stejný počet prvků, tak se to dá použít, jinak je to asi hloupé.

Ty údaje z pole chceš uložit nebo změnit?
Díky.
Myslel jsem to tak, že potřebuju uložit změny, ne nové záznamy.
Vždycky půjde o šest stejných sloupců z jednoho záznamu v tabulce.
Myslíš to vypsat nějak takhle?

while (list ($neco, $nic) = each ($nazev)) {
echo "$neco=> $nic";
}

Tohle vypíše dobře tu jednu proměnnou, ale já nevím, jak jich vypsat všech šest. Zkoušel jsem podle manuálu místo konkrétní proměnné $nazev doplnit $HTTP_POST_VARS, bohužel jsem tak jen zjistil, že takhle to nepůjde.
šest stejných sloupců z jednoho záznamu? Takže jeden update s konkrétním id? Není to vůbec jasné..

nevím, co v těch "formulářových polích" je, takže třeba:
<form action="cosi.php" ...>
<input type="text" name="neco[1]" />
<input type="text" name="neco[2]" />
<input type="text" name="neco[3]" />
....
</form>

v cosi.php

<?php
$neco = $_POST['neco']; // dostanes pole
foreach().... //tady uz je to jasne...
?>

vice promennych
$neco = $_POST['neco'];
$neco2 = $_POST['neco2'];
$neco3 = $_POST['neco3'];

... pokud maji stejny pocet prvku, tak se to da zapsat jako:

while ( list($key, $val) = each($neco) ) {
echo "$key => $val\n";
list($key1, $val1) = each($neco1);
list($key2, $val2) = each($neco2);
echo "$key1 => $val1 \n $key2 => $val2\n";
}
Hmm, nějak se neumím vyjářit. Myslel jsem to tak, že jde u každého záznamu vždy např. o nazev, id, adresu, apod.
Jak to potom předat dotazu?

$sql = 'UPDATE tabulka SET
adresa=$val1, nazev=$val2
WHERE id IN ('.implode(', ',$val6).')';

echo mysql_error(); nic nehlásí, ale změny to také neukláda.
Přitom to echo "$key1 => $val1 \n $key2 => $val2\n"........ zobrazuje vše v pohodě.
to where asi nebude to správné. Bude to asi takhle:
UPDATE tabulka SET
adresa=$val1, nazev=$val2
WHERE id = $id

to $id si někde schováš. třeba jako hidden input.

Tiše předpokládám, že na www stránce se zobrazí nějaký formulář k nějakému řádku v db. Je to tak?
A pak se případně změní nějaká data a ty je chceš zněnit v tabulce. Jo?

Jestli ne, tak prosím napiš, co chceš vlastně dělat, ale ne stylem "update 3 hodnot v tabulce", ale třeba "vypsat a změnit údaje jeméno, příjmení, telefon v tabulce, terá je v db".

Jestli to zase není ono, tak zkus zveřejnit strukturu tabulky.
v tabulce je sedm sloupců - id, nazev, popis, adresa, pristup, poznamka, vydavatel.
Pokusím se znovu vysvětlit o co mi jde, snad se mi to podaří konečně podat nějak srozumitelně.
Mám administrační stránku, na které si můžu označit jednotlivé záznamy pro hromadnou úpravu. Potom mám další stránku, na které se mi zobrazí jenom vybrané záznamy (ty které si předtím zaškrtnu). Na téhle náhledové stránce si vyberu, jestli chci vybrané smazat, vytisknou nebo editovat. Smazat i tisknout mi jde, editovat ne.
Pro editaci si načtu zvolené záznamy na další stránce do formuláře, takhle:
while ($data=MySQL_Fetch_Row($vysledek)):
$id = $data[0];
$adresa = $data[1];
.....
echo "<input type='hidden' name='id' value='$id'[] class='nazev' >";
echo "<p><font class=radky>Adresa: </font><input type='text' name='adresa[]' value='$adresa'>";

Tady provedu změny v datech jaké potřebuju a rád bych změnay uložil.
V tom formuláři mám hidden $id[] a na další stránce to načtu
$id = $_POST['id'];
Kdybych ale dal do
no, pokračování je následující:
WHERE id = $id, tak se mi to všechno uloží do jednoho záznamu nebo ne? Já se to tam snažím cpát přes implode, protože si myslím, že mi to takhle umožní provádět dotaz vlastně na víc záznamech. Alespoň když záznamy mažu, tak to funguje.
Uffff, podařilo se mi to zesrozumitelnit nebo ještě víc zamotat?
Ahááá, už je mi to jasné.
Máš n řádků z db, každý řádek má nějaké záznamy. A ty je potřebuješ všechny naráz aktualizovat....

Takže do skriptu, který to aktualizuje potřebuješ dostat n polí s potřebnými údaji a ty pole jsou všechny stejně dlouhé...

Formulář bude muset obsahovat informace o tom, co patří k sobě. Takže tam bude pro každý řádek asi toto
....
echo "<input type='text' name='adresa[$id]' value='$adresa'>";
echo "<input type='text' name='nazev[$id]' value='$nazev'>";
echo "<input type='text' name='popis[$id]' value='$popis'>";
...

tím $id to propojis. (neni to jedine reseni, ale tady bude asi dobre)

zpracovavaci skript

<?php
$adresa = $_POST['adresa'];
$nazev = $_POST['nazev'];
$popis = $_POST['popis'];

// jinak jak cyklem to neobnovis
while ( list($adr_key, $adr_val) = each($adresa) ) {
// v $adr_key mas index pole, ktery je vsude stejny
$query = "update tabulka set
adresa = $adr_val,
nazev = {$nazev[$adr_key]},
popis = {$popis[$adr_key]}
where id = $adr_key";
db_exe($query); // nebo jak se to pousti, pripadne osetrit chyby
}

jinak ja cyklem to asi nepujde.

bud se ty hdnoty v {} udelaji pres adresovani pole nebo pres each() jako to v podmince cyklu.
Ne, nejde mi to. Už mě z toho bolí hlava, asi to holt nechám být. Každopádně díky.
Asi jsem nasla, kde to vazne. Hned u nacitani zaznamu. Chyby ti tam hranate zavorky. Zkus si napsat misto

>while ($data=MySQL_Fetch_Row($vysledek)):
>$id = $data[0];
>$adresa = $data[1];
>.....


$id[] = $data[0];
$adresa[] = $data[1];
...

tak by se ti mela spravne vytvorit ta pole jednotlivych zaznamu jak to potrebujes. Takto se ti ta promena stale dokola prepisuje jednim zaznamem a php vubec nevi, ze ma vytvorit pole.

Pokud pak pouzijes spravne while a spol. , to ostatni by pak uz mohlo fungovat tak, jak jsi to mel napsane.
Rafej: Tim to opravdu nebude.