Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: delete php

Debugger [29.09.2005 15:14:40]

#

Oisko kellään ideaa deleten käytöstä seuraavassa tilanteessa.

Elikkä mulla on sivu, jossa on taulukko, taulukon viimeiseen soluun jokaiselle riville tulee linkki, jonka pitäisi poistaa kyseinen rivi taulukosta.

<?php

function AvaaTietokanta ($osoite = "localhost",$tietokanta="xxxxxxxxx")
{
  $yhteysnumero = mysql_connect($osoite,"xxxxxxxx","xxxxxxx");
  mysql_select_db($tietokanta);

  return $yhteysnumero;

}

$yhteys = AvaaTietokanta();

$kysely = "select * from Henk";
$query = "delete from Henk where snimi=$arvo;

$haku= mysql_query($kysely, $yhteys) or die ("Virhe kyselyssä!");

echo "<table border=1 bgcolor=#eeffff>";
echo "<tr bgcolor=\"#cccccc>\"
	<td><b>Enimi</b></td>
	<td><b>Snimi</b></td>
	<td><b>Kunta</b></td>
	<td><b>Palkka</b></td>
	<td><b>saika</b></td>
	<td><b>POISTA!</b></td>
	</tr>";

while ($rivi = mysql_fetch_row($haku))
  { // MYSQL_ASSOC

    $Enimi = $rivi[0];
    $Snimi = $rivi[1];
    $Kunta = $rivi[2];
    $Palkka = $rivi[3];
    $saika = $rivi[4];
    //tulostetaan taulukon rivi
    echo
  "<tr><td>$Enimi</td><td>$Snimi</td><td>$Kunta</td><td>$Palkka</td><td>$saika</td><td><a href="'
   'mysql_query($query, $yhteys)

   >X</a>

   </td></tr>";
   }
  echo "</table>";

?>

Yllä on malli nykyisestä tilanteesta.

elikkä seuraava kysely pitäisi saada toimimaan siten, että $arvo saa arvon kyseisen taulukkorivin snimel:tä.

$query = "delete from Henk where snimi=$arvo;

tsuriga [29.09.2005 16:00:25]

#

Tee erillinen delete.php, joka hakee halutun snimen osoiteriviltä, elikkä queryksi tulisi "DELETE from Henk where snimi=".quote_smart($_GET['snimi']) (quote_smart-funktio löytyy PHP:n manuaalin kommenteista, php.netin haulla löytyy [tietoturvaa parantaa]).

Yleisesti:
-Funktionimet ja muuttujat pienellä, erittäin hyvä käytäntö
-'Select * from is evil'
-Tagien attribuutit tulisi kapsuloida heittomerkkeihin tyyliin border="1"
-mysql_query palauttaa resurssin joten sen tulostaminen suoraan kuulostaa erikoiselta idealta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta