Avatar billede katja_kh Nybegynder
15. maj 2008 - 09:09 Der er 29 kommentarer og
1 løsning

Slette billeder i database + mappen de ligger i.

Hej
Jeg har lavet en sql sætning der sletter billederne fra databasen, det virker også helt som det skal, men jeg vil også gerne have hvis den kunne slette billederne nede i mappen (mappen hedder billeder) samtidig.

min sql sætning ser sådan ud:
<?php
  include('../Backup2/includes/db_con.php');
  $id = $_GET['id'];
  mysql_query("DELETE FROM desktop_pic WHERE id = $id");


$r=mysql_query("select * from desktop_pic limit 0,8");
while($row=mysql_fetch_array($r)){
echo "<a class='fotoborder' href='"."billeder/$row[stor]"."' target=_blank><img src='"."billeder/$row[lille]"."' style='border-color:white;' style='width=60px;' style='height=60px;'>&nbsp;&nbsp;</a>"."<a href = 'index.php?id=$row[id]'><img src='foto/slet_icon.jpg' border='0' ></a>" ;
        }
        ?>
Avatar billede jakobdo Ekspert
15. maj 2008 - 14:06 #1
Noget i stil med:

<?php
  include('../Backup2/includes/db_con.php');
  $id = intval($_GET['id']);;
  $path = mysql_result(mysql_query("SELECT sti_eller_hvad_den_hedder FROM desktop_pic WHERE id = $id LIMIT 1"),0);
  unlink($path);
  mysql_query("DELETE FROM desktop_pic WHERE id = $id LIMIT 1");
Avatar billede katja_kh Nybegynder
16. maj 2008 - 08:39 #2
jeg har lige prøvet din kode.. men får følgende fejl:

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 25 in /home/katja.wi13.ots.dk/public_html/skrivebord/index.php on line 130

Warning: unlink() [function.unlink]: No such file or directory in /home/katja.wi13.ots.dk/public_html/skrivebord/index.php on line 131
Avatar billede jakobdo Ekspert
16. maj 2008 - 09:22 #3
Har du husket at rette: sti_eller_hvad_den_hedder
til navnet på feltet i din tabel som indeholder filnavnet ?
Avatar billede katja_kh Nybegynder
16. maj 2008 - 09:49 #4
ja det har jeg rettet.
Avatar billede jakobdo Ekspert
16. maj 2008 - 10:16 #5
Test lige dette så:

<?php
  include('../Backup2/includes/db_con.php');
  $id = intval($_GET['id']);;
  $query = mysql_query("SELECT sti_eller_hvad_den_hedder FROM desktop_pic WHERE id = $id LIMIT 1") or die(mysql_error());
  if(mysql_num_rows($query) == 1){
      $row = mysql_fetch_assoc($query);
      $path = $row['sti_eller_hvad_den_hedder'];
      unlink($path);
      mysql_query("DELETE FROM desktop_pic WHERE id = $id LIMIT 1");
  }else{
      die('Fil ikke fundet i DB');
  }
Avatar billede katja_kh Nybegynder
16. maj 2008 - 11:15 #6
så skriver den "fil ikke fundet i DB"
Avatar billede jakobdo Ekspert
16. maj 2008 - 11:29 #7
Så er der noget galt her:
SELECT sti_eller_hvad_den_hedder FROM desktop_pic WHERE id = $id LIMIT 1

Er ID = tal ?
Eller er ID = noget.andet ?
Avatar billede katja_kh Nybegynder
16. maj 2008 - 12:18 #8
i databasen er id = INT.
Avatar billede jakobdo Ekspert
16. maj 2008 - 12:27 #9
Huske du at kalde filen med:

sletfil.php?id=ID_PAA_ET_BILLEDE ??
Avatar billede katja_kh Nybegynder
16. maj 2008 - 12:34 #10
jeps.. hele koden ser sådan ud nu, med din kode:

                <?php
  include('../Backup2/includes/db_con.php');

  $id = intval($_GET['id']);;
  $query = mysql_query("SELECT lille FROM desktop_pic WHERE id = $id LIMIT 1") or die(mysql_error());
  if(mysql_num_rows($query) == 1){
      $row = mysql_fetch_assoc($query);
      $path = $row['lille'];
      unlink($path);
      mysql_query("DELETE FROM desktop_pic WHERE id = $id LIMIT 1");
  }else{
      die('Fil ikke fundet i DB');
  }
       
       
$r=mysql_query("select * from desktop_pic order by rand() limit 0,6");
while($row=mysql_fetch_array($r)){
echo "<a class='fotoborder' href='"."billeder/$row[stor]"."' target=_blank><img src='"."billeder/$row[lille]"."' style='border-color:white;' style='width=60px;' style='height=60px;'>&nbsp;&nbsp;</a>"."<a href = 'index.php?id=$row[id]'><img src='foto/slet_icon.jpg' border='0' ></a>" ;
                }
                ?>
Avatar billede jakobdo Ekspert
16. maj 2008 - 12:57 #11
Og hvad får du af fejl på den side nu ?
Avatar billede katja_kh Nybegynder
19. maj 2008 - 08:53 #12
hvis koden ser ud som overstående får jeg følgende fejl "fil ikke fundet i DB"
Avatar billede jakobdo Ekspert
19. maj 2008 - 09:29 #13
Så kunne det tyde på der er noget alt et sted! :o)
Jeg kan desværre ikke komme med mere hjælp, da den kode skal virke og jeg ikke kan gennemskue hvor det går galt.
Avatar billede katja_kh Nybegynder
19. maj 2008 - 09:37 #14
hmm nej jeg kan heller ikke lige se det.. kan det evt. være noget med hvilket navn billedet for når det bliver uploaded. De bliver navngivet på denne måde.
timestamp_filnavn.filtype og thumbnailen hedder thumb_timestap.filnavn.filtype.
Avatar billede jakobdo Ekspert
19. maj 2008 - 10:13 #15
Du bliver nok nød til at vise en række fra din tabel.
Hvad indeholder en række, hvor ID = 1 f.eks. ?
Hvad hedder dine felter ?
Avatar billede katja_kh Nybegynder
19. maj 2008 - 13:13 #16
id                  lille              stor 
2 thumb_1210844586_Fire_Cat.jpg 1210844586_Fire_Cat.jpg
5 thumb_1210919718_20060313083556_cateye.jpg 1210919718_20060313083556_cateye.jpg
4 thumb_1210844631_MiloVentimiglia1.jpg 1210844631_MiloVentimiglia1.jpg
7 thumb_1210919738_eva_vinglas_vand.jpg 1210919738_eva_vinglas_vand.jpg
8 thumb_1210919748_441612-34med.jpg 1210919748_441612-34med.jpg

ved ikke om du kan se det ordentligt.
Avatar billede jakobdo Ekspert
19. maj 2008 - 13:31 #17
Hvad står der når du holder musen over et SLETTE LINK ?
Avatar billede katja_kh Nybegynder
20. maj 2008 - 08:35 #18
der står
http://stien_til_min_fil/index.php?id=7

den skifter id alt efter hvilket billede man er ud for.
Avatar billede jakobdo Ekspert
20. maj 2008 - 10:09 #19
Dette ødelægger nok koden, men test lige:

<?php
include('../Backup2/includes/db_con.php');

$id = intval($_GET['id']);
echo 'DEBUG : ID = ' . $id . '<br />';

$query = mysql_query("SELECT lille FROM desktop_pic WHERE id = $id LIMIT 1") or die(mysql_error());
echo 'DEBUG<br />';
echo '<pre>';
print_r($query);
$row = mysql_fetch_assoc($query);
print_r($row);
echo '</pre>';
if(mysql_num_rows($query) == 1){
    $row = mysql_fetch_assoc($query);
    $path = $row['lille'];
    unlink($path);
    mysql_query("DELETE FROM desktop_pic WHERE id = $id LIMIT 1");
}else{
    die('Fil ikke fundet i DB');
}
     
$r=mysql_query("select * from desktop_pic order by rand() limit 0,6");
while($row=mysql_fetch_array($r)){
    echo "<a class='fotoborder' href='"."billeder/$row[stor]"."' target=_blank><img src='"."billeder/$row[lille]"."' style='border-color:white;' style='width=60px;' style='height=60px;'>&nbsp;&nbsp;</a>"."<a href = 'index.php?id=$row[id]'><img src='foto/slet_icon.jpg' border='0' ></a>" ;
}
?>
Avatar billede katja_kh Nybegynder
20. maj 2008 - 13:06 #20
nej puha det virkede ikke.. jeg fik disse fejl og næsten alt andet på min side forsvandt.

DEBUG : ID = 0
DEBUG

Resource id #6
Fil ikke fundet i DB
Avatar billede jakobdo Ekspert
20. maj 2008 - 13:23 #21
Der er noget galt.
Du siger dine links hedder:
http://stien_til_min_fil/index.php?id=7
Men DEBUG : ID = 0

Tilføj følgende i toppen af din fil:

<?php
echo '<h1>GET</h1>';
echo '<pre>';
print_r($_GET);
echo '</pre>';
echo '<h1>POST</h1>';
echo '<pre>';
print_r($_POST);
echo '</pre>';
include('../Backup2/includes/db_con.php');

Hvad giver det af ekstra output ?
Avatar billede katja_kh Nybegynder
20. juni 2008 - 12:09 #22
..
Avatar billede jakobdo Ekspert
20. juni 2008 - 15:18 #23
Hva.... Det var da ikke en pæn måde bare at lukke...
Jeg synes da nok jeg har kommet med en del forslag.
Avatar billede katja_kh Nybegynder
20. juni 2008 - 16:58 #24
ja det er jo rigtig nok..
hvis jeg nu laver en tråd (kalder den dit brugernavn) .. så kan du skrive på den og så skal du få de 60 point..
Du skal da have noget for din insats.
Avatar billede jakobdo Ekspert
20. juni 2008 - 17:10 #25
Men du fik det måske ikke til at virke eller hvad?
Avatar billede jakobdo Ekspert
20. juni 2008 - 17:10 #26
Avatar billede katja_kh Nybegynder
21. juni 2008 - 16:06 #27
nej fik det ikke til at virke.
Avatar billede jakobdo Ekspert
21. juni 2008 - 16:16 #28
Hvor er du endt ?
Avatar billede katja_kh Nybegynder
21. juni 2008 - 16:40 #29
jeg har droppet den her... men har oprette en ny tråd med samme problem.. bare med en ny kode (nyt projekt). Hvis jeg kan få den til at virke kan jeg muligvis også få denne her til at funge.. men er blevet lidt rundtosset i disse koder..
Avatar billede jakobdo Ekspert
21. juni 2008 - 16:55 #30
Har du et link til dit nye spørgsmål ?
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