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
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>
čímž bys měl získat adresy typu smazani.php?id=1, smazani.php?id=2, smazani.php?id=3 a soubor smazaní jen lehce upravit
 $_POST['idForm']; nahradit za  $_GET['id'];


Proměnou
$_GET
můžeš vytohovat i více údajů. Pokud budeš mít adresu např.
 index.php?text=Ahoj&jmeno=Pepo


tak pak pmůžeš např. vypsat
echo $_GET['text'].' '.$_GET['jmeno'];
a výsledek bude Ahoj Pepo.
Arcibiskup z Canterbury
Profil *
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
Arcibiskup z Canterbury:
$id = $_GET['id'];
raději $id = (int)$_GET['id'] nebo jakékoliv jiné ošetření integeru.

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