Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Lista wielokrotnego wyboru do zapytania SQL
Forum PHP.pl > Forum > Przedszkole
blejdas
Witajcie,

Mam skrypt losujący ID użytkownika według zadanych w formularzu właściwości. Pobieram z bazy danych listę userów i wyświetlam ja w formie listy wielokrotnego wyboru.

Chodzi o to, że muszę wykluczyć z zapytana ID użytkowników którzy zostali oznaczeni w liście wielokrotnego wyboru. Powinna też być możliwość nie zaznaczenia żadnego.

  1. $sql2 = 'SELECT id FROM users WHERE status = "Active" WHERE ID IS NOT ""ID" OR "ID" OR "ID" (itd. ile trzeba)" AND id IS NOT NULL ORDER BY RAND() LIMIT 1';


Czy ktoś mi mógłby podpowiedzieć czego użyć w tym wypadku? Chciałbym to skrócić do jednej zmiennej w której, w przypadku zaznaczenia chociaż jednej opcji chciałbym umieścić "ID IS NOT <id>" a w przypadku dwóch lub więcej powinno być dla każdego kolejnego dodawane "OR <id>".
kapslokk
Poszukaj sobie: MySQL IN() / MySQL NOT IN()
Pyton_000
`ID` IS NOT IN()

blejdas
Dzięki! To jest to! smile.gif

No i fajnie, bo SQL mam załatwiony bardzo prosto, ale nie mogę tablicy pobrać z formularza i wrzucić w ciąg.

Plik form.php
  1.  
  2. $sql = NULL;
  3. $sql = 'SELECT id, first_name, last_name FROM users WHERE id IS NOT NULL ';
  4. $result = mysql_query ($sql) or die (mysql_error ());
  5. $num = 0;
  6. while ($zmienna2 = mysql_fetch_array ($result)){
  7. $num++;
  8. echo'<input id="element_7" name="element_7[]" class="element checkbox" type="checkbox" value="'.$zmienna2['id'].'" />
  9. <label class="choice" for="element_7">'.$num.' - '.$zmienna2['first_name'].' '.$zmienna2['last_name'].'</label>';
  10.  
  11. }


Tutaj wyświetla mi się lista z checkboxami. Jest tych pozycji tyle ile znajdzie zapytanie SELECT. Zaznaczam na przykład 2 z 10 wyników i wysyłam formularz:

Plik wykonaj.php
  1. if (is_array($_POST['$element_7']))
  2. {
  3. $wyklucz1 = implode(",", $_POST['$element_7']);
  4. } ELSE {
  5. $wyklucz1 = "NIC TU NIEMA";
  6. }
  7. echo "Wykluczamy: $wyklucz1";


Wynikiem jest: Wykluczamy: NIC TU NIEMA
nospor
sprawdzaj na jakich danych dzialasz a nie na jakich ci sie wydaje ze dzialasz....
var_dump($_POST);
kapslokk
$_POST['element_7'] a nie $_POST['$element_7']
blejdas
Faktycznie o jeden dolar za daleko smile.gif Dzięki!

Słuszna uwaga z VAR_DUMPEM. Dzięki.
viking
Jeszcze powinieneś zrezygnować z rozszerzenia mysql. Już dawno przestało być wspierane.
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.