Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] PW jak zrobic usuwanie wybranej wiadomości
Forum PHP.pl > Forum > Przedszkole
jacus24
Zrobiłem taki kod który wyświetla listę wiadomości. Chciałbym dorobić do niego pole checkbox obok każdej wiadomości i żeby po zaznaczeniu wybranej wiadomości można było ją usunąć. Jak najprościej to zrobić?
  1. <?php
  2. $zapytanie = "SELECT * FROM wiadomosci ORDER BY data_nadania DESC";
  3.  
  4. if ($r = mysql_query ($zapytanie))
  5. {
  6. while ($wiersz = mysql_fetch_array ($r))
  7. {
  8. if($_SESSION['user_logged'] == $wiersz['odbiorca'] ) {
  9. echo "Nadawca<a href='uzytkownik.php?nadawca={$wiersz['nadawca']}'>{$wiersz['nadawca']}</a>
  10. Tytuł<a href='czytaj_wiadomosc.php?tytul={$wiersz['tytul']}'>{$wiersz['tytul']}</a>
  11. Data{$wiersz['data_nadania']}";
  12. ?>
Kicok
Po pierwsze poczytaj w jakimś kursie SQL o WHERE. Bo za jakiś czas będziesz pobierał z bazy danych dwadzieścia tysięcy wiadomości po to, żeby wyświetlić dwie...


Po drugie dodaj do każdej wiadomości pole checkbox:
  1. <input type="checkbox" name="usun[]" value="<?php echo $wiersz['id_wiadomosci']; ?>" />


Po wysłaniu formularza traktujesz tablicę $_POST['usun'] funkcją implode" title="Zobacz w manualu PHP" target="_manual i wstawiasz to co wyszło do zapytania w taki sposób, aby otrzymać coś w rodzaju:
  1. DELETE FROM wiadomosci WHERE ( id_wiadomosci IN ( 1, 3, 4, 5, 23, 414 ) ) AND ( id_nadawcy = $_SESSION['user_id'] )


Przydałoby się też dorobić do tego jakąś walidację. Przynajmniej sprawdzanie czy zaznaczono jakiekolwiek pole checkbox (count" title="Zobacz w manualu PHP" target="_manual). Ewentualnie rzutowanie wszystkich elementów tablicy na typ int (array_map" title="Zobacz w manualu PHP" target="_manual, array_walk" title="Zobacz w manualu PHP" target="_manual lub zwykła pętla for) o ile dasz sobie radę.
jacus24
Dzięki za dobre rady. Powienieniem sobie poradzić nie wiedziałem tylko jak się zabrać za to. Dzięki wielkie za odpowiedz.
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.