Slette en post fra databasen

Tags:    php mysql

Hej,

Jeg har oprettet en database, hvor det er muligt at tilføje poster fra en side, og så bliver posterne udskrevet på en anden side som hedder se_kunder.php.

Jeg vil nu lave et link under hver post som bliver vist som gør det muligt at slette den enkelte post fra databasen.

Jeg har skrevet noget kode, men det virker ikke, den refresher bare siden se_kunder.php
er der nogle som ved hvad jeg gør forkert?

Jeg håber i forstår hvad jeg mener, og at i kan hjælpe.

her er min kode:

Fold kodeboks ind/udPHP kode 




38 svar postet i denne tråd vises herunder
6 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
hmm den refresher stadig bare siden.

Er der nogle steder hvor du havde skrevet id men det skulle være med store bogstaver, fordi kollonen id er med store bogstaver i tabellen, men ved ikke om det gør en forskel og hvor jeg skulle ændre det i koden.

men dette er nu hele min kode:

Fold kodeboks ind/udPHP kode 


Jeg prøvede også at udskifte
Fold kodeboks ind/udPHP kode 

med
Fold kodeboks ind/udPHP kode 


bare for at se om den slettede id nummer 3 men det virkede heller ikke, den refresher kun siden :(



Hej Adam.

Har du prøvet at køre din slet kode i fx phpmyadmin?

Får du nogle fejl?

Hvordan ser din url ud? Kommer der et id frem?





Indlæg senest redigeret d. 12.03.2012 22:09 af Bruger #15663
Hvad mener du køre den i phpmyadmin?

Altså jeg kan vel gøre det manuelt der ved at klikke på knappen slet.
Men er det da muligt at teste min kode direkte i phpmyadmin?



Hvad for et setup bruger du?
WAMP, LAMP eller kører du på et webhotel?

Phpmyadmin er en administration som bl.a. anvendes til mysql databaser.

Grunden til et jeg vil have dig til at køre det i phpmyadmin er for at tjekke om det er din sql den er gal med.
Du kunne jo også prøve at gå ind at tjekke i din database om den reelt sletter posterne, gør den dette er vi jo et skridt videre.



Jeg køre den fra mit webhotel.
Når jeg går ind i min database har den ikke slettet posten, det er stadig den samme der er der.

Men hvordan kan jeg så køre det direkte i phpmy admin.
Skal jeg skrive noget kode under fanen sql i phpmyadmin?

lige nu står der det her i den fane:

SELECT * FROM `kunder` WHERE 1

skal jeg også skrive noget og lad det stå eller hvad?

Tak :)



Prøv at slette en af dine poster fra din database og se hvordan den sql den fremstiller ser ud og kopier den over i dit script.

Hvis jeg var dig ville jeg starte med at ændre lidt på din kode.

Så du har en fil der hedder slet_kunde.php og den fil du har nu med se_kunder.php

I slet_kunde.php sletter du kunden og udskriver kunden er nu slettet og linker tilbage til se_kunder.php.

se_kunder.php skal blot indeholde din liste.

Jeg er temmelig sikker på du har en fejl i den måde du vil slette på.



Hvis jeg sletter en post manuelt kan jeg da ikke se en sql kode som den fremstiller kun denne meddelelse:

Er du sikker på at du vil :
DELETE FROM `xxx`.`kunder` WHERE `kunder`.`ID` = 4

men hvis jeg indsatte den virkede det stadig ikke.

Så det du mener med slet_kunde.php er at der udføre jeg bare sql koden og viderestiller igen til se_kunde efter det er blevet udførst?

Så i princippet kommer man ikke en på slet kunde siden det er kun for at linke til en anden side?

Så linket i bunden ville se sådan ud:

'<a href="slet_kunder.php">Slet</a>' .

Og på den side ville man så udføre handlingen med den kode jeg har på nuværende tidspunkt på se_kunder siden?

Har jeg forstået det rigtigt?

og jeg håber også du kan forstå mig :)



Ja det er det jeg mener.

Prøv at give mig dine tabeloplysninger. så skal jeg bikse noget sammen til dig der virker.
Jeg har brug for følgende:
tabel navn
felt navne





En php fil bliver udført fra top til bund. Så din rækkefølge er helt ude i skoven.

Desuden skal id hentes via get arrayet og IKKE row, som først defineres i din while løkke.



@Daniel, din løsning har en væsentlig mangel. Selvom filen kaldes uden et defineret id i querystring så vil den køre en query DELETE FROM blabla WHERE id = ''. Pak den ind i en if-sætning der tjekker om _GET id er sat. Det er oplagt at lave noget input validering i samme omgang og benytte funktionen is_numeric. Den giver false hvis id'et ikke er et tal (altså også hvis den ikke er sat). http://php.net/is_numeric

Derudover er det rigtigt nok.



Indlæg senest redigeret d. 14.03.2012 18:38 af Bruger #17015
t