Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Usuwanie kilku wpisów jednocześnie
Forum PHP.pl > Forum > Przedszkole
Khobar
Witam prosibym o jakieś nakierunkowanie...
Robię mianowicie system newsów
Dotarłem już prawie do końca teraz pozostało mi usuwanie wiadomości.
Chciałbym mianowicie wyświetlić newsy z checkboxami koło każdego newsa ,
zaznacza się które się chce usunąc i usunąc je (mechanizm znany prawie każdemu użytkonikowi jakielkolwiek poczty z dostępem do www tongue.gif)
poniżej kod fumkcji która odpowiedzialna za tworzenie checkboxa, daty i tytułu newsa $v jest zmieniany co jeden w pętli aż do końca , cała pętla znajduje się w tagach
  1. <form action="<?php echo "$PHP_SELF";?>" method="GET">

funkcja:
  1. <?
  2. function wyswietl_del ($array2,$v)
  3. {
  4. $data=$array2[$v]['data'];
  5. $tytul=$array2[$v]['tytul'];
  6. ?>
  7. <table BORDER RULES="none" width="100%" align="center" border="1" bordercolor="#808080" style="border-collapse:collapse">
  8. <td>
  9. <input type="checkbox" name="<? echo '$v';?>" value='TRUE' ><?
  10. echo date('M-d-Y',$data),' ',$tytul;?>
  11. </td>
  12. </tr>
  13. </table>
  14. <?
  15. }

Mam zrobione to tak że z czytuje z pliku , ładuje do tablicy
Usuwając newsa przesówam wszystkie elementy tablicy o -1 od newsa którego usuwam ...czyli news z pozycji 3 zostaje zastąpiony przez 4 , 4 przez 5 etc. i tak do końca.
Problem mam teraz kwesti takiej: jak przesłac które newsy chcę usunąć....można za pomocą GET , komplikacja robi się z chwilą gdy muszę wyświetlić powiedzmy 40 newsów , usunąc większą ilośc ....
Da się to zrobić ale fragment kodu odpowiedzialny za sprawdzanie kazdej wartosći czy jest TRUE czy FALSE ( czyli usun newsa numer 30 np) zajmie duzo miejsca...
Może ktoś mógłby zasugerować coś zmyslniejszego ( baza mysql odpada tongue.gif)?
dtb
  1. <input type="checkbox" name="delete[ID_NEWSA]" value="TRUE">


a potem:

  1. <?php
  2. foreach ($_GET['delete'] as $id => $value) {
  3. // zapytanie usuwajace newsa o id = $id
  4. }
  5. ?>
Khobar
Czyli funkcje wyświetlanie musze zmodyfikować o takie cos?
  1. <input type="checkbox" name="delete[<? echo $v; ?> ]" value="TRUE">

bo $v jest własnie id odpowiadające tylko jednemu newsowi i jednoczesnie jego pozycja w tabeli, $v jest przekazywane do funkcji
I czy mógłbym prosić torszkę o wyjasnienie drugiego
Nie wiem czy dobrze sie domyslam , ale wydaje mi sie ze on przeszuka cała tablice ,
i przy każdym numerze przypisze odpowiednio TRUE lub FALSE ,
dalej w pętli mam umiescić sprawdzenie
  1. <?php
  2. foreach ($_GET['delete'] as $id => $value)
  3. {
  4. if ($id == TRUE ) { przesun(&$array2,$v);}
  5. $v++;
  6. }
  7. ?>

gdzie funkcja przesun() jest zadeklarowana gdzie indziej i nie istotna tutaj
Dobrze kombinuje czy nie tędy droga? tongue.gif

EDIT:
hmm cos nie bardzo tak idzie :/
z chwila gdy zrobilem tak jak napisalem to poprzez przegladarke idzie taka wiadomosc:
Kod
http://localhost/news/usun.php?delete%5B0%5D=TRUE&delete%5B1%5D=TRUE&usun=TRUE

czyli odczytujac %5B = [ %5D= ]
czyli zamiast stworzyc tablice stworzyl dane ktore wygladaja delete[x] gdzie zmienia sie x :/
uli
  1. <?php
  2. echo "<input type="checkbox" name="delete[$v]" value="TRUE">";
  3. ?>
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.