Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tietokannasta poisto?

Sivun loppuun

Cocu [27.10.2004 10:38:09]

#

Minulla on tiedosto, jossa haetaan tietokannasta ja laitetaan "Poista"-nappi perään, jotta siitä olisi mahdollista saman tien poistaa tieto. Mutta en saa sitä toimimaan.

Tiedosto jossa haetaan on muotoa:

<?php
 require "funktiot.php";

 $yhteys = AvaaTietokanta();

 if (!$kysely = mysql_query("select Henkilon_nimi
    from Henkilo order by Henkilon_nimi",$yhteys))
 {
    print "<LI>Haku epäonnistui!";
 }
 else
 {
  while ($linkki = mysql_fetch_row($kysely))
  {
    	print "<LI>";
    	print " ";
    	print $linkki[0] .  "</A>";
	print "<INPUT TYPE = submit NAME = \"toiminto\"    VALUE =Poista>";


  }
 }
 ?>

Ja post actionissa on tiedosto.php, ja on muotoa:

<?php
 require "funktiot.php";
 $yhteys = AvaaTietokanta();


   if ($toiminto == "Poista")
  {
    $sql_lauseke = "delete from Henkilo where Henkilon_nimi = Henkilon_nimi";

    if (!$kysely = mysql_query($sql_lauseke,$yhteys))
    {
      $sivunotsikko = "Poisto epäonnistui! ";
      $teksti = "Virhe: " . mysql_error();
    }
    else
    {
      $sivunotsikko = "Henkilon tiedot poistettu tietokannasta.";
      $teksti = "Poisto onnistui.";
    }
  }
?>

Tiedän että virhe on SQL:n delete lauseessa ja juuri tuossa "where Henkilon_nimi = Henkilon_nimi", mikä tuohon toiseen Henkilon_nimi kohtaan pitää laittaa jotta se osaisi poistaa juuri oikean. Jos siihen laitta 'Joku henkilo', eli jonkun tietokannassa olevan henkilon niin toimii, mutta ei muuten.
Kiitos

mike patto [27.10.2004 11:16:37]

#

Yrität suorittaa lausetta "delete from Henkilo where Henkilon_nimi = Henkilon_nimi"; , pitäisi olla = "delete from Henkilo where Henkilon_nimi = " + Henkilon_nimi ;
+ :llä merkkasin vakio-osan ja muuttujan yhdistelyn, en nääs tunne oikein php:tä ...Ymmärtänet kuitenkin ajatuksen

renni [28.10.2004 01:14:27]

#

Lisäksi se nimi pitäisi laittaa vielä hipsuihin tai lainausmerkkeihin. Eli kokonaisuus pitäisi olla
$sql_lauseke = "delete from Henkilo where Henkilon_nimi = '" . Henkilon_nimi . "'";

mike patto [29.10.2004 10:10:05]

#

No totta mooses, hipsut unohtuivat. Hmm, entäpäs jos sen muuttujan arvo onkin näin Henkilon_nimi='"Pekka Lipponen"' ?
BTW, miksi nuo pisteet : '" . Henkilon_nimi . "'" ? Menee nyt kyllä vähän alkuperäisen aiheen ohi,mutta asia kiinnostaa.

Blaze [29.10.2004 10:29:55]

#

mike patto kirjoitti:

miksi nuo pisteet : '" . Henkilon_nimi . "'" ?

No siksi, kun piste nyt sattuu olemaan merkkijonojen yhdistysoperaattori PHP:ssä.

mike patto [29.10.2004 10:38:34]

#

Ok, tämä selvä. Kuten sanoin en ole mikään php-guru, enempi DBA ...

renni [29.10.2004 20:58:21]

#

DBA:n pitäisi tietää miksi hipsut ja mitä tapahtuu kun arvo onkin vaikka "Ville Virtanen".

mike patto [01.11.2004 08:19:42]

#

DBA tietää kyllä hipsut ja niiden merkityksen, ajattelinkin lähinnä herättää alkuperäisen kysyjän miettimään asiaa. SQL:llä on, kuten varmasti hyvin tiedät, mahdollista tehdä kaikenlaista mielenkiintoista. Mieleikuvitus on monesti suurin rajoite.

Tehtäviini DBA:na ei muuten juurikaan kuulu ohjelmointi vaan tietokantojen asennukset, toimivuuden seuranta, ohjelmistojen tekijöiden opastus jne.


Sivun alkuun

Vastaus

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

Tietoa sivustosta