Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak usunąć plik z serwera?
Forum PHP.pl > Forum > Przedszkole
kononowicz
napisałem skrypt wyświetlający towary promocyjne na stronce. Kod poniżej ma służyc do usuwania i edycji tych wpisów. usuwanie z bazy mi działa jednak nie działa mi usunięcie zdjęcia z serwera. rekord LINK zawiera ściezke do pliku. Jednym słowem nie wiem jak usunac plik. Kombinowałem na rozne sposoby i nic. prosze o pomoc. dodam tylko ,ze serwer jest na linuksie wiec unlink powinno działac.
  1. <?php
  2. if(isset($_GET['del']))
  3.  {
  4.  if(mysql_query('delete from `promocja` where ID='.$_GET['del'].' '))
  5.  {
  6. echo "<div id=uwaga>usunięto promocję</div>";
  7.  $link = $wiersz['LINK']; // nie działa
  8.  unlink($link);
  9.  }
  10. else
  11.  {
  12. echo "<div id=uwaga>nie usunięte</div>";
  13. }
  14.  }
  15.  
  16.  
  17. $wynik=mysql_query("SELECT * FROM promocja");
  18. while($wiersz = mysql_fetch_array($wynik))
  19. {
  20. echo "<table>";
  21. echo "<tr colspan=2>";
  22. echo "<td>".$wiersz['NAGLOWEK']."</td>";
  23. echo "</tr>";
  24. echo "<tr colspan=2>";
  25. echo "<td> cena przed:".$wiersz['CENA_PRZED']."zł  cena po:".$wiersz['CENA_PO']."zł</td>";
  26. echo '<td>
  27.  <a href="usun_promocje.php?del='.$wiersz['ID'].'">usuń</a>
  28.  <a href="usun_promocje.php?edit='.$wiersz['ID'].'">edytuj</a>
  29.  </td>';
  30. echo "</tr>";
  31. echo "<tr>";
  32. echo "<td>".$wiersz['OPIS']."</td>";
  33. echo "<td> <img src=".$wiersz['LINK']."></td>";
  34. echo "</tr>";
  35. }
  36. echo "</table>";
  37. ?>


wychodzi błąd:


Warning: unlink(): No such file or directory in /home/*************/usun_promocje.php on line 12

w rekordzie LINK jest ściezka w formie upload/zdjęcie.jpg a fotki są w katalogu upload
mike
Regulamin :: Zakładanie nowego tematu (topic) :: punkt b
Cytat
Ważną sprawą jest właściwe zatytułowanie naszego posta. Temat powinien być krótki (nie używamy pełnych zdań, lecz posługujemy się raczej hasłami), ale możliwie najdokładniej precyzujący poruszaną tematykę.
Zweryfikuj proszę teraz to co nakazuje Regulamin a co masz w tytule tego wątku.
Podałeś nazwę funkcji i tyle. Nic nikomu to nie mówi o zawartości tego wątku.
Proszę to poprawić.


Jak mądrze zadawać pytania :: Bądź precyzyjny i podawaj dokładne informacje dotyczące problemu
Z Twojego opisu wynika, że ... nie działa i tyle.
Nie wiem nic o błędach jakie wyskakują, czy w ogóle wyskakują. Czy poza brakiem usuwania coś jeszcze się dzieje?
Proszę zwrócić uwagę na bardziej szczegółowe opisywanie problemu.
Cienki1980
A czy na pewno zmienna $wiersz['LINK'] zawiera to czego szukasz questionmark.gif

Wyciągasz gdzieś wcześniej z bazy dane na temat usuwanego wiersza.

Z tego kodu co podałeś wynika, że nie wyciągasz tych danych.
kononowicz
Cytat(Cienki1980 @ 17.01.2007, 23:44:31 ) *
A czy na pewno zmienna $wiersz['LINK'] zawiera to czego szukasz questionmark.gif

Wyciągasz gdzieś wcześniej z bazy dane na temat usuwanego wiersza.

Z tego kodu co podałeś wynika, że nie wyciągasz tych danych.


no własnie zmianna ta nie zawiera tego czego potrzebuje i włsnie to mnie dziwi... pytanie co zrobic i co podstawic do unlinka'a zeby było dobrze questionmark.gif i jak wyciągnąc ten link questionmark.gif?
Cienki1980
A co w tym dziwnego że jest pusta skoro jej nigdzie nie pobierasz questionmark.gif

Czyli musisz wyciągnąć dane o usuwanym rekordzie zanim go usuniesz, a będziesz miał zmienna $wiersz['LINK'] do wykorzystania w funkcji unlink();
kononowicz
Cytat(Cienki1980 @ 17.01.2007, 23:50:01 ) *
A co w tym dziwnego że jest pusta skoro jej nigdzie nie pobierasz questionmark.gif

Czyli musisz wyciągnąć dane o usuwanym rekordzie zanim go usuniesz, a będziesz miał zmienna $wiersz['LINK'] do wykorzystania w funkcji unlink();


:] jak to zrobić ... mógłbym się spytac?questionmark.gif
mike
~kononowicz już raz Cię dzisiaj upomniałem. Nie rób z forum czata i pomyśl trochę.
Dane masz w bazie.
Masz tam informacje o linku, prawda? To zrób zapytanie do bazy, wyciągnij odpowiednie dane z jego wyników i ich użyj.
Jak? Dokładnie tak samo jak robisz to w okolicach linii 17-tej.
Cienki1980
Tak jak wyciąga się dane z tabeli SQL za pomocą php.
Znasz może takie funkcje jak:

mysql_connect();
mysql_query();
mysql_fetch_array();


i podstawowe zapytanie do bazy danych typu:
  1. SELECT * FROM table_name WHERE id='1'


Zadawanie tego typu pytania to już przegięcie na całego.
kononowicz
juz działa .. uufff

  1. <?php
  2.  
  3.  
  4. if(isset($_GET['del']))
  5.  {
  6.  $usun=mysql_query('SELECT LINK FROM `promocja` WHERE ID='.$_GET['del'].' ');
  7.  while($do_usuniecia = mysql_fetch_array($usun))
  8. {
  9.  echo $do_usuniecia['LINK'];
  10.  if(unlink($do_usuniecia['LINK']))
  11.  echo "<div id=uwaga>usunięto zdjęcie</div>";
  12.  else
  13.  echo "<div id=uwaga>nie usunięto zdjęcia</div>";
  14. }
  15.  if(mysql_query('delete from `promocja` where ID='.$_GET['del'].' '))
  16. echo "<div id=uwaga>usunięto promocję</div>";
  17. else
  18. echo "<div id=uwaga>nie usunięte</div>";
  19.  
  20.  }
  21.  
  22.  
  23. $wynik=mysql_query("SELECT * FROM promocja");
  24. while($wiersz = mysql_fetch_array($wynik))
  25. {
  26. echo "<table>";
  27. echo "<tr colspan=2>";
  28. echo "<td>".$wiersz['NAGLOWEK']."</td>";
  29. echo "</tr>";
  30. echo "<tr colspan=2>";
  31. echo "<td> cena przed:".$wiersz['CENA_PRZED']."zł  cena po:".$wiersz['CENA_PO']."zł</td>";
  32. echo '<td>
  33.  <a href="usun_promocje.php?del='.$wiersz['ID'].'">usuń</a>
  34.  <a href="usun_promocje.php?edit='.$wiersz['ID'].'">edytuj</a>
  35.  </td>';
  36. echo "</tr>";
  37. echo "<tr>";
  38. echo "<td>".$wiersz['OPIS']."</td>";
  39. echo "<td> <img src=".$wiersz['LINK']."></td>";
  40. echo "</tr>";
  41. }
  42. echo "</table>";
  43. print $wiersz['LINK']; print $_GET['del'];
  44. ?>
maryaan
chlopie jazde to Ci zrobia moderatorzy jak nie zaczniesz zadawac pytan w bardziej inteligentny sposob. Napisz moze po co wkleiles ten ostatni kod (i co w nim nie dziala) bo ja swoje "produkcje" tez moge wklejac do kazdego posta i bedzie wesolo :] odpaliles ten skrypt w ogole? sadze ze nie bo on nie ma prawa zadzialac, w linii
Kod
$usun = mysql_query("SELECT LINK FROM `promocja` WHERE ID='.$_GET['del']'  ")
brakuje srednika i z apostrofami jest megamix zrobiony, jakbys poczytal przyklejony temat o najczestszych bledach to znalezienie tego zajelo by moze z 2 minuty
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.