Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Jednoczesne usuwanie rekordu i pliku, Jednoczesne usuwanie rekordu i pliku
marcian
post 29.02.2012, 13:51:01
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.02.2012

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Sephirus
post 29.02.2012, 13:57:10
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
marcian
post 29.02.2012, 14:51:46
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.02.2012

Ostrzeżenie: (0%)
-----


No i po problemie smile.gif Dziękuje...

Ten post edytował marcian 29.02.2012, 14:52:25
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:07