Avatar billede tobrukDk Novice
03. marts 2012 - 22:58 Der er 9 kommentarer og
1 løsning

slette function virker ikke

Hej


Jeg har sidde og lege lidt med en slet function men jeg kan ikke få den til at virker og jeg har også kigge en del på nette men det er da sikkert bare mig


<?php
$id = $_GET['id'];
$result = mysql_query("DELETE FROM `kontaktinfo` WHERE id = $id");   
        header("Location: admin_kontakt.php");
?>


er det mig som lavet den forkert??


det er fordi jeg skal ind og have fat i id og  slette fra databasen :)
Avatar billede inteeeL Nybegynder
03. marts 2012 - 23:04 #1
Du har jo blot defineret slet-parameteret i variablen $result, uden at denne variabel bliver kaldt nogle steder. Følgende burde i stedet gøre det:
<?php

$id = $_GET['id'];
if( mysql_query("DELETE FROM `kontaktinfo` WHERE id='$id'")) {
    header("Location: admin_kontakt.php");
}

?>
Avatar billede tobrukDk Novice
03. marts 2012 - 23:13 #2
Når jeg klik på den så kommer den bare hen på siden og er helt tom og så når man skriver selv for siden på der hvor slet function er så er der intet ske på siden :(
Avatar billede erikjacobsen Ekspert
03. marts 2012 - 23:22 #3
$result = mysql_query("DELETE FROM `kontaktinfo` WHERE id = $id") or die(mysql_error());

PS: Læs op på SQL-injection, og URL-injection, og lad være med at lægge det på nettet til du har styr på det.
Avatar billede tobrukDk Novice
03. marts 2012 - 23:34 #4
#3
Skulle jeg prøve at skrive sådan her i sql?

DELETE FROM `kontaktinfo` WHERE id = 1 ?
Avatar billede erikjacobsen Ekspert
03. marts 2012 - 23:36 #5
#4: Nej. Hvorfor det?
Avatar billede tobrukDk Novice
03. marts 2012 - 23:39 #6
Nåår okay men jeg forstår den ikke helt ??
Avatar billede erikjacobsen Ekspert
03. marts 2012 - 23:41 #7
Du har en linie:

$result = mysql_query("DELETE FROM `kontaktinfo` WHERE id = $id");   

Hvis du erstatter den med

$result = mysql_query("DELETE FROM `kontaktinfo` WHERE id = $id") or die(mysql_error());

hvad sker der så?
Avatar billede tobrukDk Novice
03. marts 2012 - 23:45 #8
#7

sorry jeg havde glemt at lave en connect til databasen



<?php
include("include/database/db.php");

$id = $_GET['id'];
$result = mysql_query("DELETE FROM `kontaktinfo` WHERE id = $id") or die(mysql_error());
    header("Location: admin_kontakt.php");

?>
Avatar billede tobrukDk Novice
04. marts 2012 - 01:11 #9
jeg lukker den selv da jeg selv gik en fejl og havde glemt at lave database til..

ser du det som et problem eller lign så skriver til mig :D
Avatar billede erikjacobsen Ekspert
04. marts 2012 - 11:56 #10
Det er helt fint med mig, men du lægger mærke til at du fik en metode til selv at finde fejl - mysql_error() - som så gjorde det muligt at finde fejlen. Vi andre kunne såmænd godt se at der ikke var adgang til databasen i den kode du viste.

I et færdigt system skal man ikke vise slutbrugeren en fejl med die(mysql_error()). Bedre fx at vise brugeren en side med "oops, fejl", og sende dig den fulde fejl med email.
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