Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usuwanie danych z pliku za pomoca checkbox'a, Usuwanie danych z pliku za pomoca checkbox'a
mentos101
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.11.2009

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


Witam. Mam mały problem, otóż mam skrypt który usuwa rekordy w pliku i odpowiednio do rekordu plik,
Mój problem wyglada tak ze wszystkie checkboxy sie wyswietlaja, usuwa rekord w pliku i plik, ale jak chce usunac wiecej niz jeden rekord (czyli zaznaczam wiecej checkboxow ) to nie usuwa ich, usuwa tylko ostatni zaznaczony checkbox.
Oto skrypt:
  1. <?php
  2.  
  3. $plik = "zdjecia.php";
  4.  
  5.  
  6. if ((isset($_POST['usun'])) AND (is_numeric($_POST['usun']))) {
  7.  
  8.  
  9.  
  10. $dane = file($plik);
  11. unset($dane[$_POST['usun']]);
  12.  
  13.  
  14. $f = fopen($plik, "w");
  15. foreach($dane as $linia){
  16. fputs($f, $linia);
  17. }
  18. fclose($f);
  19.  
  20. }
  21.  
  22. $nazwy = $_POST['nazwa'];
  23. unlink("../cms/photos/".$nazwy);
  24. unlink("../cms/thumbs/".$nazwy);
  25.  
  26.  
  27.  
  28. ?>
  29. <br><br>
  30. <form action="uploadandlista.php" method="post">
  31.  
  32. <?php
  33. $dane = file($plik);
  34.  
  35. for($i=0;$i<count($dane);$i++) {
  36. list($nazwa[$i], $link[$i]) = explode(" || ", $dane[$i]);
  37.  
  38. }
  39.  
  40.  
  41.  
  42. for($i=0;$i<count($link);$i++) {
  43. echo '<input name="usun" type="checkbox" value="'.$i.'">' .$link[$i]."<br></input>";
  44. echo '<input name="nazwa" type="hidden" value="'.$nazwa[$i].'">';
  45. }
  46.  
  47.  
  48. ?>
  49. <br>
  50. <input type="submit" value="Usuń" />
  51. </form>

moze ktos wie jak temu zaradzic ? za pomoc z gory dziekuje (IMG:style_emoticons/default/smile.gif)

Ten post edytował Ociu 28.11.2009, 09:55:55
Powód edycji: [Ociu]: Dodałem bbCode
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Quantum
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


  1. echo '<input name="usun" type="checkbox" value="'.$i.'">' .$link[$i]."<br></input>";


na

  1. echo '<input name="usun[]" type="checkbox" value="'.$i.'">' .$link[$i]."<br></input>";


dodajesz do nazwy checkboxa [], wtedy w php będziesz mógł się odwołać tj. do tablicy (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mentos101
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.11.2009

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


Probowałem wczesniej. Niestety to nie pomaga, a co gorsza w ogole wtedy nie usuwa.
Go to the top of the page
+Quote Post
Wykrywacz
post
Post #4





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Plików ci nie kasuje bo nie masz tego w pętli
  1. $nazwy = $_POST['nazwa'][$i];
  2. unlink("../cms/photos/".$nazwy);
  3. unlink("../cms/thumbs/".$nazwy);

Go to the top of the page
+Quote Post
Quantum
post
Post #5





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


(is_numeric($_POST['usun']).

chyba przez to (IMG:style_emoticons/default/smile.gif)

to tablica wtedy będzie, is_array.
Go to the top of the page
+Quote Post
mentos101
post
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.11.2009

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


Ale nie usuwa rekordow ani plikow.

skrypt ktory przesłałem usuwa tylko jeden z zaznaczonych checkboxow;/

Podejrzewam ze cos jest nie tak z formularzem ktory wysyla nr rekordow. Bo sprawdzalem wczesniej i wysyla tylko jeden nr rekordu.
Ale nie wiem jak temu zaradzic.
Go to the top of the page
+Quote Post
Quantum
post
Post #7





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


przeanalizuj, odpowiedź dałem pare postów wcześniej.

  1.  
  2. print_r($_POST);
  3.  
  4. echo '<form method="post">
  5. <input type="checkbox" name="usun[]" value="a">
  6. <input type="checkbox" name="usun[]" value="b">
  7. <input type="checkbox" name="usun[]" value="c">
  8. <input type="submit">
  9. </form>';
  10.  


jak myślisz czym będzie $_POST['usun'] ?. napewno funkcja is_numeric($_POST['usun']) zwróci false, warunek, w którym znajdują się instrukcje do usuwania nie zostaną wykonane, dodatkowo dałeś .(isset($_POST['usun'][$i])).

Ten post edytował sniffer32 27.11.2009, 16:26:20
Go to the top of the page
+Quote Post
mentos101
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.11.2009

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


a jak mozna było by to zmienic. poniewaz jestem bardzo poczatkujacy w php za bardzo nie mam pojecia co z tym zrobic.
Go to the top of the page
+Quote Post
Quantum
post
Post #9





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


najlepiej napisać od nowa (IMG:style_emoticons/default/smile.gif) z logiką (IMG:style_emoticons/default/winksmiley.jpg) podpowiedź. przeiteruj elementy tablicy $_POST['usun'] w foreach i tam wstaw instrukcje do usuwania ;]
Go to the top of the page
+Quote Post
mentos101
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.11.2009

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


Za bardzo mi to nie pomaga.. Poniewaz jestem jak wczesniej podkreslilem bardzo poczatkujacy.
A skrypt ktory przedstawilem jest modyfikacja innego skryptu ktory mial za zadanie usuwac dane z pliku ale za pomoca funkcji <select>.
Go to the top of the page
+Quote Post
Quantum
post
Post #11





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


to powiedz mi, po co bierzesz się od razu za skrypty, których napisaniu nie podołasz ? tutaj nie dostaniesz gotowca, ale wskazówki, które mają Ci pomóc (IMG:style_emoticons/default/smile.gif)

daj przykładową zawartość pliku zdjecia.php.
Go to the top of the page
+Quote Post
mentos101
post
Post #12





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.11.2009

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


oto przykładowa zawartosc pliku zdjecia.php:

samplepicture08.jpg || <a href=http://www.ko-plato.pl/cms/photos/samplepicture08.jpg >samplepicture08.jpg</a>
samplepicture05.jpg || <a href=http://www.ko-plato.pl/cms/photos/samplepicture05.jpg >samplepicture05.jpg</a>


Dzieka sniffer32 udało mi się zmodyfikowac skrypt, wykorzystalem pętle foreach i wszystko gra (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 20:33