Avatar billede optur Novice
16. marts 2011 - 09:37 Der er 12 kommentarer og
1 løsning

Slet fra to database tabeller og filer

Jeg sidder og roder med et script hvor jeg skal slette indholdet fra to tabeller samt filer.

Jeg har to tabeller, en ved navn filer, og en ved navn info.
Under info har hver række en primær id, under filer er der en partiel nøgle som hedder ordrenr da der kan være flere billeder til en id.

Jeg prøvede at sætte koden op til først at slette fra de to tabeller med følgende kode:
delete.php

<?php
include('db_con.php');
$id = $_GET['id'];
$query = "delete * from filer, info where info.id =".$id." AND filer.ordrenr =".$id;
header('location: view.php?id=success');
?>


koden hvor jeg sender dataen fra ser ud som følgende:


<?php
    $resultat = mysql_query("SELECT * FROM info");
    while ($raekke = mysql_fetch_array($resultat)) {
        extract($raekke);
        echo "<tr>";
        echo "<td><a href='post.php?id=".$id."'>".$varenummer."</a></td>";
        echo "<td><a href='post.php?id=".$id."'>".$returordre."</a></td>";
        echo '<td>'.$kundenavn.'</td>';
        echo "<td><a href='delete.php?id=".$id."'>X</a></td>";
        echo '</tr>';
        echo '<tr>';
        echo "<td colspan='4' class='trbody'></td>";
        echo '</tr>';
    }
?>


Handlingen bliver udført uden problemer, men der bliver intet slettet fra databasen.
Avatar billede michael_stim Ekspert
16. marts 2011 - 10:20 #1
Du glemmer at køre en mysql_query på din delete.
Avatar billede majbom Novice
16. marts 2011 - 10:34 #2
DELETE filer, info FROM filer JOIN info ON filer.ordrenr=info.id AND info.id='$id'

og så husk at kør din query - lige nu smider du den bare i en variabel :)
Avatar billede michael_stim Ekspert
21. marts 2011 - 17:25 #3
Kan se at du har været inde 17/3, er du kommet videre?
Avatar billede optur Novice
24. marts 2011 - 11:32 #4
nej, sidder med opgaven nu og skal til at afprøve jeres eksempler. Der kom haste opgave ind så har ikke haft tid før nu.
Avatar billede optur Novice
24. marts 2011 - 11:37 #5
Jeg har så et problem... jeg skal have lavet et array (som jeg overhovedet aldrig har forstået =( )

ud fra ovenstående kode sletter den kun alt fra databasen, men den skal så også tage filnavnet under filer, og køre en unlink() på de filer som ligger id upload.

hvordan bære jeg mig ad med det?
Avatar billede michael_stim Ekspert
24. marts 2011 - 11:41 #6
Så må du jo først køre en SELECT, og for hvert resultat kører du en unlink OG en DELETE med WHERE id=dit_resultat.
Avatar billede optur Novice
24. marts 2011 - 11:42 #7
kan jeg eventuelt få hjælp med et kode eksempel?
Avatar billede optur Novice
24. marts 2011 - 12:46 #8
jeg har selv løst det sidste del af koden, mange tak for alt den hjælp i har givet =)

koden ser således ud til dem som skulle få brug for det i fremtiden

Splazz da det er dig som har hjulpet mig mest i det her så smid et svar så du kan få dine point =)


<?php
// database forbindelse
include('db_con.php');
// henter id
$id = $_GET['id'];
// løkke som henter value og køre unlink funktion på hver filnavn med det id
$query = mysql_query("SELECT value FROM filer WHERE ordrenr=".$id) or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
    extract($row);
    unlink("upload/".$value);
}
// sletter alt fra de to tabeller som har samme id
mysql_query("DELETE filer, info FROM filer JOIN info ON filer.ordrenr=info.id AND info.id=".$id) or die(mysql_error()); 

?>
Avatar billede optur Novice
28. marts 2011 - 09:28 #9
Det lader ikke til at virke den ovenstående kode.

Hvis der ikke er nogle filer med, så køres koden igennem, men der slettes intet fra databasen.

Er der nogen forslag til hvordan det kan løses?
Avatar billede majbom Novice
28. marts 2011 - 10:56 #10
hvor kommer $value fra?
Avatar billede optur Novice
28. marts 2011 - 11:47 #11
$value er fra tabellen filer. den indeholder filnavnene på de billeder som er blevet lagt ind...

Koden virker fint, og selve filerne bliver skam også slettet, men hvis der ikke er nogen filer uploaded så bliver indholdet ikke slettet fra databasen.
Avatar billede optur Novice
29. august 2012 - 08:39 #12
Lukker tråd
Avatar billede majbom Novice
29. august 2012 - 14:00 #13
fik du løst dit problem / er det stadig aktuelt?

må ærligt indrømme at denne tråd er gået i glemmebogen...
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