Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Lista wielokrotnego wyboru do zapytania SQL
blejdas
post 8.12.2017, 13:37:20
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2012

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


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>".
Go to the top of the page
+Quote Post
kapslokk
post 8.12.2017, 13:39:32
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Poszukaj sobie: MySQL IN() / MySQL NOT IN()
Go to the top of the page
+Quote Post
Pyton_000
post 8.12.2017, 13:40:13
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


`ID` IS NOT IN()

Go to the top of the page
+Quote Post
blejdas
post 8.12.2017, 14:33:55
Post #4





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2012

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


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
Go to the top of the page
+Quote Post
nospor
post 8.12.2017, 14:39:24
Post #5





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




sprawdzaj na jakich danych dzialasz a nie na jakich ci sie wydaje ze dzialasz....
var_dump($_POST);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kapslokk
post 8.12.2017, 14:39:28
Post #6





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


$_POST['element_7'] a nie $_POST['$element_7']
Go to the top of the page
+Quote Post
blejdas
post 8.12.2017, 14:48:32
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2012

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


Faktycznie o jeden dolar za daleko smile.gif Dzięki!

Słuszna uwaga z VAR_DUMPEM. Dzięki.
Go to the top of the page
+Quote Post
viking
post 8.12.2017, 14:57:15
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Jeszcze powinieneś zrezygnować z rozszerzenia mysql. Już dawno przestało być wspierane.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 11:22