Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Moderacja zbiorowa
Forum PHP.pl > Forum > Przedszkole
PawelC
Witam smile.gif
Napisałem sobie skrypt katalogu, i teraz doszedłem do etapu moderacji, na początku miałem tak że jak wpis był zgodny z regulaminem to naciskałem dodaj i tak osobno dla każdego wpisu. I moje pytanie jest takie jak zrobić zbiorową moderacje, że np mam 10 wpisów z czego 8 jest zgodny z regulaminem, a 2 nie i chciałbym za jednym klikniecięm aktywować te 8 zaznaczonych do aktywacji? Wpisy są aktywowane po id.

Zaakceptowane wpisy są aktualizowane pod ID, gdzie checkbox jest zaznaczony na aktywuj.
Spawnm
hmmm ja swego czasu zrobiłem obok wpisu kasuj , a gdy wywaliłem co zbedne/spam klikałem link 'akceptuj wszystkie' smile.gif
czyli kasuj->delete wipis where id=id z kasuj
akceptuj all-> update wpisy activ=1//tak
PawelC
No tak mniej więcej wiem o co chodzi, ale wpuścić to w jakąś pętle?
Spawnm
nie , w tym co ja proponuję sql nada wszystkim wpisom activ=1 czyli wyświetl smile.gif
dodaj na koniec where activ=0 co pewnie przyśpieszy zapytanie
PawelC
Dla przykładu zrobiłem coś takiego:
  1. <?php
  2. $aktywna=$_POST['aktywna'];
  3. $id=$_POST['id'];
  4. switch($aktywna){
  5. case 'Tak':
  6. echo 'Aktywowałeś id: '.$id;
  7. break;
  8. case 'Nie':
  9. echo 'Usunełeś id: '.$id;
  10. break;
  11. default:
  12. ?>

i nie działa, bo pokazuje tylko jedno id zawsze.


# Tak wyglądają wpisy przed moderacją:
http://www.fotosik.pl/pokaz_obrazek/pelny/...3bb09cdb7e.html
Spawnm
...?
  1. <?php
  2. if($_GET['kasuj']){//kasuj=id
  3. delete kasuj
  4. }
  5. if($_GET['activall']){
  6. update wpisy set activ=1 where activ=0
  7. }
  8. ?>

zakładam że masz w bazie pole activ gdzie 1=wyświetl smile.gif
Crozin
Checkboxy robisz w forime:
  1. <input type="checkbox" name="active[n]" />
Gdzie n to ID konkretnego rekordu. Następnie przy pomocy implode" title="Zobacz w manualu PHP" target="_manual łączysz sobie wszystkie ID w jeden ciąg: 1, 2, 3, 4, 5, 6, 23, 342. Teraz wystarczy już jedno proste zapytanie[sq]UPDATE tbl_name SET active = 1 WHERE id IN(1, 2, 3, 4, 5, ...);[/sql]
erix
Nie trzeba podawać n w środku, samo value wystarczy.

Po co komplikować? winksmiley.jpg
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.