Autor | Zpráva | ||
---|---|---|---|
Arcibiskup z Canterbury Profil * |
Zdravim, mam tento kod PHP, kterym z databaze vypisuji id, jmeno, prijmeno a email uzivatele:
<?php $dotaz=mysql_query("SELECT jmeno, prijmeni, email, id FROM autor"); while($vysledek = MySQL_Fetch_Array($dotaz)): { $id=$vysledek['id']; $jmeno=$vysledek['jmeno']; $prijmeni=$vysledek['prijmeni']; $email=$vysledek['email']; echo $id .", ". $jmeno .", " . $prijmeni . ", <a href='mailto:$email'>" . $email ."</a><br/>"; } endwhile; ?> Vysledek je tento: 91, Jmeno1, Příjmeni1, email1@example.com [Zde chci odkaz ODSTRANIT] 91, Jmeno2, Příjmeni2, email2@example.com [Zde chci odkaz ODSTRANIT] Jsem v PHP naprostý začátečník, takže si s tím hraji a zkouším všelijaké možnosti. Nicméně jsem se zaseknul na "mém požadavku" odstraňovat záznamy z databáze pomocí odkazu. Řešení prostřednictvím formuláře, kdy zadám ID, ktere chci odstranit, funguje, jsem zprovoznit dokazal: <form action="smazani.php" method="POST"> Smazat ID: <input type="text" name="idForm"/><br/> <input type="submit" name="Odeslat"/><br/> </form> A toto je soubor smazani.php: <?php { $id = $_POST['idForm']; $dotazProSmazani= "DELETE FROM autor WHERE id='$id'"; $vysledekSmazani = mysql_query($dotazProSmazani); if ($vysledekSmazani) echo "Odstranění uživatele bylo úspěšné. Zpět na <a href='index.php'>formulář</a>"; else echo "Odstranění uživatele nebylo úspěšné. Zpět na <a href='index.php'>formulář</a>"; } ?> Nicméně mým cílem je, aby v tom výpisu všech uživatelů byl za každým odkaz s názvem "Odstranit", ktery povede k zavolani toho odstranovaciho dotazu s automaticky vlozenym ID. Je to trivialita, urcite, ale porad na to nemohu prijit :D Poradíte? Moderátor panther: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Pan X Profil |
#2 · Zasláno: 9. 7. 2011, 19:20:28 · Upravil/a: Pan X
V PHP můžeš odeslat jakoukoliv hodnotu proměnné dosadit do adresy ve tvaru např. index.php?id_autora=5 a pak tuto hodnotu zpracovávat pomocí $_GET. Je to vlastně stejné jako $_POST která pracuje s formulářem akorát že nemusíš mít formulář...
Ke každému řádku při výpi dej toto: echo '<a href="smazani.php?id='.$id.'">Smazat</a> $_POST['idForm']; nahradit za $_GET['id']; Proměnou $_GET index.php?text=Ahoj&jmeno=Pepo tak pak pmůžeš např. vypsat echo $_GET['text'].' '.$_GET['jmeno']; |
||
Arcibiskup z Canterbury Profil * |
#3 · Zasláno: 9. 7. 2011, 19:53:25
Pan X: dikes na nakopnuti spravnym smerem, nechapu, proc me to nenapadlo :D
Jen eventualne pro ostatni, upravena cast kodu s "ECHO" vypada takto: echo $id .", ". $jmeno .", " . $prijmeni . ", <a href='mailto:$email'>" . $email ."</a> (<a href='smazani.php?id=$id'>smazat záznam</a>)<br/>"; a v souboru smazani.php se nahradilo: $id = $_POST['idForm']; za: $id = $_GET['id']; |
||
panther Profil |
#4 · Zasláno: 9. 7. 2011, 19:55:15
Arcibiskup z Canterbury:
„$id = $_GET['id'];“ raději $id = (int)$_GET['id'] nebo jakékoliv jiné ošetření integeru.
|
||
Časová prodleva: 13 let
|
0