Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
Witam, mam następujący problem i nie wiem jak sobie z nim poradzić, ale tworzyć tysiące pętli które by były możliwe to bezsens.
Sprawdzam sobie oraz wstawiam w pętlę IF wartość:
Jak można się domyśleć sprawdzam czy $numer ma wartość w bazie "1" jeżeli ma tworzę zmienną "$nr"1-6, następnie tą zmienną wkładam do kolejnego zapytania:
Problem jest wtedy gdy istnieje "1" dla 2 albo 3 lub 4 zmiennych $nr.. Przecież nie będę tworzyć tyle ifów. Dlatego piszę tu na forum, czy istnieje jakieś rozwiązanie jak to zrobić ? (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 13 Dołączył: 17.12.2011 Ostrzeżenie: (0%)
|
Jeszcze można tak:
i warunek SQL:
Ale pewnie da się to zrobić dużo łatwiej - nie podałeś zapytania, którym pobierasz te rekordy, które wstawiasz do warunków. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
a nie możesz zrobić tego przez LEFT JOIN i pozbyć się kodu PHP?
Czy zapytanie którym wyciągasz rowx jeszcze ma jakieś inne zadanie? Czy obie tabele są w jakikolwiek sposób ze sobą powiązane? Pokaż to zapytanie. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
super, ale co jeśli będzie tylko 1 warunek spełniony? To wtedy nie może być "OR" tylko "AND" w zapytaniu.
Zapytanie pierwsze gdzie pobieram nazwę użytkownika:
drugie zapytanie:
lub po zmianie
Ten post edytował casperii 13.03.2015, 14:56:16 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
To co napisałeś i tak Ci zwróci wynik typu:
Jeśli użytkownik nazywa się 'Adam" Oraz nr=1 W przeciwnym wypadku jeśli któryś z nr. = 1 (ale już nie koniecznie Adam) |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
Ja rozumiem, ale potrzebuje też te zmienne umieścić do kolejnego zapytania:
i tu dla tego muszę mieć "AND" dla tylko 1 spełnionego warunku dla $nr
Czyli chcę wyświetlić wszystkie rekordy o nie podanej nazwie a także te numery które do tej nazwy przynależą , mógłbym co prawda usunąć z zapytania `nazwa`!="" ale wtedy WHERE OR jest niepoprawną składnią zapytania mySQL. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Weź pokaż kod cały kod z którym masz problem do walisz jakieś wyrywki które sie kupy nie trzymają.
I wyjaśnij co i jak i gdzie i po co chcesz to zrobić. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
Nie ma sensu wstawiać wszystkich plików oraz całego kodu źródłowego. Oto najważniejsze
index.php
Po zalogowaniu się otrzymujemy w sesji nazwę (czyli login) , potem przypisujemy jakie uprawnienia ma dany login (nazwa) oraz do jakiego numeru należy. Jeżeli dana nazwa (login) ma uprawnienia "m" rozpoczynamy pętle for. drugi plik php:
W drugim pliku mam select z którego wybieram nazwę , jeżeli nie wybiorę wyświetli mi wszystko co jest różne od pustego wiersza nazwa !='' Jeżeli wybiorę jakąś nazwę z selecta tworzy się zapytanie nazwa = "'.$zmiennaZselect.'"' oraz do jakiego numeru należy, dlatego pierwszy z for powinno być AND numer1 a kolejny jeśli istnieje OR. Czyli jeśli dana nazwa (login) przynależy do numer1="1" oraz numer="2" to powinno być nazwa="coś z selecta" AND numer1="1" OR numer2="1". Jeżeli dana nazwa (login) przynależy tylko do np numer3="1" to powinno być tylko nazwa="coś z selecta" AND numer3="1" Myślę że teraz jasno się wyraziłem o co mi chodzi :-) Ten post edytował casperii 13.03.2015, 21:11:27 |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 02:07 |