Autor Zpráva
MilanJ
Profil
Po úspěšně vykonaném SQL dotazu dojde v mém kódu ke zpracování dat a zobrazení tabulky.
Ve výsledné zobrazované tabulce se zobrazuje odkaz, který umožní otevření nové stránky, na které bude moci uživatel daný řádek databáze editovat v nějakém formuláři.
A teď problém: Jak podle odkazu pozná, o kterou položku databáze jde???
Napadlo mě předávat hodnotu pomocí SESSION, ale nevím, jak odkaz se SESSION provázat, takže výsledek stejný.
Jak se v takovýchto případech postupuje?

Kód mé tabulky v PHP:

...

$pocet_radku = mysql_num_rows($vysledek_dotazu);
if ($pocet_radku >= 1) // našel minimálně 1 řádek
{
echo '<table width="485" border="1" cellpadding="3" cellspacing="2">';
echo '<tr>';
echo '<td width="70" bgcolor="#0033CC" class="login">Začátek</td>';
echo '<td width="70" bgcolor="#0033CC" class="login">Konec</td>';
echo '<td width="150" bgcolor="#0033CC" class="login">Název</td>';
echo '<td width="175" bgcolor="#0033CC" class="login">Popis</td>';
echo '<td width="20" bgcolor="#0033CC" class="login"></td>';
echo '</tr>';

while($radek = mysql_fetch_array($vysledek_dotazu))
{
echo "<TR>";
echo "<TD>".ereg_replace("([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})"."([0-9] {2})([0-9]{2})", "\\3.\\2.\\1 - \\4:\\5",$radek["zacatek"])."</TD>";
echo "<TD>".ereg_replace("([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})"."([0-9] {2})([0-9]{2})", "\\3.\\2.\\1 - \\4:\\5",$radek["konec"])."</TD>";
echo "<TD>".$radek["nazev"]."</TD>";
echo "<TD>".$radek["popis"]."</TD>";
echo "<TD><a href='detail_aukce.php'>detail</a></TD>";
echo "</TR>";
}
echo "</table>";
Hugo
Profil
Stačí k tomu odkazu přidat do URL odkaz na primární klíč.

echo "<TD><a href='detail_aukce.php?id=".$radek['id']."'>detail</a></TD>";
MilanJ
Profil
echo "<TD><a href='detail_aukce.php?id=".$radek['id']."'>detail</a></TD>";
Zní to nadějně, ale co to pak udělá?
Jak na další stránce, kde chci zobrazit detail zobrazím požadovaná data? Využiju to, co je už vygenerováno a odkážu se přímo na to?
MilanJ
Profil
Tak mě napadlo, že jsi to myslel jinak...že se dá hodnota primárního klíče v URL na další stránce nějak vytáhnout a použít, ne?
Pokud tomu tak je, nevím jak.
Hugo
Profil
MilanJ

Budeš ji mít v proměnné $_GET['id']. Pak pomocí této hodnoty vytáhneš data z db.
MilanJ
Profil
Skvěle! Díky.
mitr
Profil
MilanJ
nebylo by lepší ten "ereg_replace" dělat předtím než to vložíš do DB ? a ne při vypisování z DB ? :-)

btw: nebylo by lepší kdyby každý řádek byl formulář s možností editace záznamu,každá hodnota by byla <input ...... value="'.$radek["zacatek"].'"> a nakonci s tlačítkem změnit ? a přidal bych tam ještě:
<input type="hidden" name="id" value="'.$radek["id"].'" /> aby se vědělo o který řádek jde :)
MilanJ
Profil
nebylo by lepší ten "ereg_replace" dělat předtím než to vložíš do DB ? a ne při vypisování z DB ?
Já myslím, že je to jedno, ne?

btw: nebylo by lepší kdyby každý řádek byl formulář s možností editace záznamu,každá hodnota by byla <input ...... value="'.$radek["zacatek"].'"> ...

Možné to je, ale takhle to má svoji logiku, vidím to v širším kontextu, je potřeba, celá aukce byla "blbuvzdorná", a takhle mi to přijde jednodušší a na první pohled srozumitelnější.
Ale je to věc názoru.
mitr
Profil
MilanJ
Proč vkládat do databáze něco co potom budeš pokaždé kontrolovat, proč to nezkontrolovat jednou při vkládání ? I tak někdo může do databáze vložit nehezké věci, někd ejinde to zapomeneš zkontrolovat .... důvodů by se našlo určitě ještě víc :)

Nevěděl jsem co to vlastně vůbec je, pokud je to aukce a bude tak dostupná pro XXX lidí a není to jen věc pro administrátora, tak OK. Ale jinak pokud by to bylo něco pro administraci atd, tak by mi to připadalo zase rychlejší, bez načítání další stránky :)
MilanJ
Profil
pokud je to aukce a bude tak dostupná pro XXX lidí a není to jen věc pro administrátora, tak OK
Přesně tak, je to především pro lidi.
Toto téma je uzamčeno. Odpověď nelze zaslat.