Avatar billede kaspermb Nybegynder
15. marts 2011 - 19:44 Der er 13 kommentarer og
1 løsning

mysql_query DELETE

Hej, hvorfor sletter den ikke min artikel. hvad gør jeg galt. :)

mysql_query("
DELETE FROM artikel
WHERE id = '$id'
");
15. marts 2011 - 19:52 #1
Det er ikke let at vide med de begraensede oplysninger (queryen ser umiddelbart rigtig ud.)  Du kan goere to ting for at hjaelpe dig selv.  (1)  Du kan undersoege om der findes en artikel med id = '$id' ved at selecte den ( $result = mysql_query("SELECT * FROM artikel WHERE id = '$id'") og skriv resultatet ud, og (2) du kan tilfoeje  or die(mysql_error()) for at faa mysql til at fortaelle om der er en syntaks fejl.
Avatar billede erikjacobsen Ekspert
15. marts 2011 - 19:53 #2
Og den oplagte mulighed er at $id er tom.
Avatar billede kaspermb Nybegynder
15. marts 2011 - 20:04 #3
Er sikker på at id ikke er tom. or die(mysql_error()) giver ikke nogen virkning....?
Avatar billede kaspermb Nybegynder
15. marts 2011 - 20:11 #4
Jeg har den første kode som laver en lange liste med link, når der trykkes var ideen at den skulle slette artiklen via upload.php

--- delete.php ---
$dbh = mysql_connect($hostname, $username, $password) or die("error");
$selected = mysql_select_db("artikel",$dbh) or die("error");
$result = mysql_query("SELECT id, rubrik FROM artikel ORDER BY id desc");
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
  echo "<b><a href='delete_upload.php?id=".$row['id']."&rubrik=".$row['rubrik']."'>".$row['rubrik']."</a></b><br/>";
}


--- delete.php ---
//Valg af tabeller
$id=$_POST['id'];

//Uploader artikel til server
mysql_query("
DELETE FROM `artikel` WHERE `id` = '$id'");
Print "<b>Artiklen er nu slettet</b>";
Avatar billede kaspermb Nybegynder
15. marts 2011 - 20:12 #5
*FEJL*

Jeg har den første kode som laver en lange liste med link, når der trykkes var ideen at den skulle slette artiklen via upload.php

--- delete.php ---
$dbh = mysql_connect($hostname, $username, $password) or die("error");
$selected = mysql_select_db("artikel",$dbh) or die("error");
$result = mysql_query("SELECT id, rubrik FROM artikel ORDER BY id desc");
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
  echo "<b><a href='delete_upload.php?id=".$row['id']."&rubrik=".$row['rubrik']."'>".$row['rubrik']."</a></b><br/>";
}


--- upload.php ---    <--- upload.php ikke delete.php
//Valg af tabeller
$id=$_POST['id'];

//Uploader artikel til server
mysql_query("
DELETE FROM `artikel` WHERE `id` = '$id'");
Print "<b>Artiklen er nu slettet</b>";
Avatar billede erikjacobsen Ekspert
15. marts 2011 - 20:16 #6
$id=$_GET['id'];
Avatar billede olebole Juniormester
15. marts 2011 - 20:23 #7
<ole>

"Er sikker på at id ikke er tom" >> Man skal passe på ikke at blande begreberne tro og viden sammen. Umiddelbart synes jeg, det lider lidt mærkeligt, at du laver en liste af links, man kan klikke på - og efterfølgende leder i $_POST arrayet efter id.

Jeg ville nok lede i $_GET - og jeg ville under alle omstændigheder ikke kunne vide, om den er tom, før jeg havde skrevet den ud  ;o)

/mvh
</bole>
Avatar billede kaspermb Nybegynder
15. marts 2011 - 20:23 #8
Tak erikjacobsen det virker... Smider du et svar... :)
Avatar billede olebole Juniormester
15. marts 2011 - 20:24 #9
Erik >> Husk stjernen i kalenderen - selvom det er længe siden, vi har leget den leg  *D
Avatar billede erikjacobsen Ekspert
15. marts 2011 - 20:28 #10
Nej tak, jeg samler ikke på point. Til nød samler jeg stjerner, men det er en helt anden sag.

Man kunne også begynde at snakke om sikkerhed med din kode, men det er sikkert ok hvis den ikke er alment tilgængelig på nettet.
15. marts 2011 - 20:34 #11
erikjacobsen #2 - en tom $id var ogsaa min mistanke. 

kaspermb, jeg havde haabet at du ville have afproevet mit forslag, for saa ville du have set for dig selv at en selekt med $id ikke ville have givet noget resultat.  Derfor kan du heller ikke slette noget med $id!  Du viser os saa i $4 grunden (som erikjacobsen spotter i #6) at du proever at samle $id op fra POST i stedet for fra GET.

Og i #5 goer du det ikke bedre.  I filen delete.php har du en href til delete_upload.php, men den fil hvor du forsoeger at delete hedder upload.php.

Faa dine fil-navne rigtig og brug $id=$_GET['id'] og se om du saa faar slettet.
15. marts 2011 - 20:35 #12
Naada, der var kommet en hel raekke indlaeg mens jeg skrev mit.  Men vi synes at vaere enige.
17. marts 2011 - 20:41 #13
kaspermb, du gav i #8 (mens jeg var i gang med #11) udtryk for at du havde faaet problemet loest.  Saa vil jeg bede dig lukke spoergsmaalet.  For god ordens skyld og saa det ikke laengere staar som aabent i min (og andres) liste af indlaeg.  Den du bad om svar hos afslog, saa for at faa det lukket maa du nok selv oprette et svar og acceptere det.  Men lad ikke spoergsmaalet blive haengende.  Please.
Avatar billede kaspermb Nybegynder
24. marts 2011 - 18:54 #14
Lukket...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester