Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jednoczesne usuwanie rekordu i pliku
Forum PHP.pl > Forum > Przedszkole
marcian
Witam.
Od jakiegoś czasu próbuję nauczyć się PHP. Dotychczas miałem do czynienia jedynie z HTML i CSS.
Czytam trochę na różnych forach i próbuję sam coś posklejać... Gdzieś przeczytałem żeby próbować ściągać toturiale z internetu i na ich podstawie też czegoś próbować się nauczyć więc poskładałem taki kod, który ma na celu wyświetlenie zawartości tabeli z bazy i usunięcie z niej wybranego rekordu...

  1. <?php
  2.  
  3. $wynik = mysql_query("SELECT * FROM galeria ORDER BY id_zdjecie desc")
  4. or die('Błąd zapytania');
  5.  
  6. if(mysql_num_rows($wynik) > 0) {
  7.  
  8. echo "<center><table cellpadding=\"2\" style='width: 500px;border: 0px solid #777777;'>";
  9. while($r = mysql_fetch_assoc($wynik)) {
  10. echo "<tr>";
  11. echo "<td width='60%'><h9>".$r['nazwa_zdjecie']."</h9>";
  12. echo "<h5>".$r['opis_zdjecie']."</h5></td>";
  13. echo "<td align='center'><img src='".$r['link_zdjecie']."' style='background: #ffffff; padding: 4px;width: 100px;height: 100px; border: 1px solid #312715;'></td>";
  14. echo "<td align='center'>
  15.  
  16. <a href=\"wyswietl.php?a=del&amp;id_zdjecie={$r['id_zdjecie']}\" onclick='return confirm(\"Czy na pewno usunąć?\")'>Usuń</a>
  17.  
  18. </td>";
  19. echo "</tr>";
  20. }
  21. echo "</table></center>";
  22. }
  23.  
  24. $a = trim($_GET['a']);
  25. $id = trim($_GET['id_zdjecie']);
  26.  
  27. if($a == 'del' and !empty($id)) {
  28.  
  29. mysql_query("DELETE FROM galeria WHERE id_zdjecie='$id'")
  30. or die('Błąd zapytania: '.mysql_error());
  31.  
  32. echo '<script>setTimeout("document.location = \"usunieto.php\"", 1000);</script>';
  33. }
  34.  
  35. if ( !mysql_close() ) {
  36. echo 'Nie moge zakonczyc polaczenia z baza danych';
  37. exit (0);
  38. }
  39.  
  40. ?>
  41.  


I generalnie wszystko działa, chociaż pewnie wiele rzeczy należałoby zrobić trochę inaczej...
Wiem też że kod jest dziurawy (dopiero zacząłem czytać o SQL Injection) ale służy mi on wyłącznie do nauki, więc na tym etapie nie jest to chyba aż tak ważne.
Moje pytanie dotyczy natomiast problemu, na którym utknąłem od kilku dni...
Co muszę dopisać do tego kodu i gdzie żeby po kliknięciu USUŃ usuwało jednocześnie rekord z bazy i odpowiadający mu plik z serwera...
Nauczyłem się już usuwać sam plik za pomocą unlink() (Z tego forum BTW smile.gif ), ale nie potrafię połączyć tego z tym kodem...
Jeżeli ktoś mógłby poświęcić chwilkę i mi pomóc byłbym strasznie wdzięczny...
Sephirus
Aby usunąć plik - na bank musisz posiadać jego nazwę... przed usunięciem rekordu z bazy musisz ją pobrać a masz tylko ID zatem:

  1. $q = mysql_query("SELECT * FROM galeria WHERE id_zdjecie='$id'");
  2. $image = mysql_fetch_assoc($q);
  3.  
  4. unlink($image['link_zdjecie']);


wrzucone w linijce numer 28 powinno wystarczyć wink.gif
marcian
No i po problemie smile.gif Dziękuje...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.