Autor Zpráva
karmacoma
Profil
Zdravím všechny příznivce programování,

mám takový problém, řeším ho docela dlouho a stále nic.

Mám databázi s několika řádky. Jeden sloupec je rok, který maj všechny řádky stejný, defaultně nastavený na nulu.
Pokouším se vymyslet skript, který by vypsal vždy jen jeden záznam v závislosti na id a vyvolal formulář, kam si napsala jiná hodnota roku a ta se UPDATE v databázi. Nemůžu se však dostat k tomu, aby mi skript vypsal pouze jeden záznam a počkal na zadání hodnoty a po odeslání té hodnoty vypsal další a tak dále až do konce počtu záznamů.

Skript, který se mi podařilo napsat, to umí udělat pouze jednou, napodruhé už se nerozjede. Uměl by mi prosím někdo šikovný poradit?

Můj skrip je:
$pocet_zaznamu = mysql_query("SELECT * FROM $tb");
$pocet_zaznamu = mysql_num_rows($pocet_zaznamu);
for ($id = 1; $id <= $pocet_zaznamu; ):
$zaznam = mysql_query("SELECT * FROM $tb WHERE ($rok = 0) AND (id = $id)");
require "formular.html";
if ($_REQUEST["formular"]== false)
break;
else
{
while ($vypis = mysql_fetch_row($zaznam)&& $_REQUEST["formular"] == true)
{
print_r($vypis);
$_REQUEST["formular"] = false;
if ($_REQUEST["formular"] == false) break;
}
}
$id++;

endfor;

asi je to prasácky napsaný, ale PHP se učím teprve týden :)

Předem děkuji všem
Perry
Profil
Nerozjede se proto, že odesláním formuláře ten tvůj for vlastně "ukončíš", takže nemůže pokračovat.

napsal bych to tak, že bych si do formuláře bych dodal <input type="hidden" name="skryteID" value="...--tady bude to editovane ID---..."> poslední ID, které jsi editoval a po odeslání bych napsal nějaký takovýhle select:

$id = $_REQUEST['skryteID'];
$zaznam = mysql_query("SELECT * FROM $tb WHERE ($rok = 0) AND (id > $id)");
require "formular.html"

a formulář by měl action nastavenou na stejnou stránku, kde běží tenhle PHP kód

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