![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Na szybkiego:
-------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za kod, ale nie działa to tak jak powinno, tzn. działa to tak jak bez tego warunku IF.
Zapytanie powinno działać na tej zasadzie, że: -jeśli numer1='1', numer2='1', numer3='1', numer4='1', numer5='1', numer6='1' istnieje to:
Jeżeli natomiast nie będzie numeru1 tylko od numer 2 do numer6 to zapytanie powinno być takie:
a z twoim kodem to wygląda tak:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Literówkę w warunku if zrobiłem Ten post edytował Forti 14.03.2015, 14:23:27 -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nic nie zmieniło dalej to wygląda tak:
a powinno tak:
Jeżeli nie mam w bazie zaznaczonego numer1='1', to powinno być "AND" numer='numer2', jeżeli w bazie nie mam numer1='1' oraz numer2='1' to zapytanie powinno wyglądać tak:
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie ogarniam o co ci chodzi, wiesz? Pokaż co masz w bazie.
Cytat Jeżeli nie mam w bazie zaznaczonego numer1='1', to powinno być "AND" numer='numer2', jeżeli w bazie nie mam numer1='1' oraz numer2='1' to zapytanie powinno wyglądać tak: masło maślane. "Jeżeli nie 1 to x, jeżeli nie 1 to y"? -,- i nie spamuj mi na priv. Jak będę miał czas to odpiszę. -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nowy temat to niwy kod i nowy problem. Pokaz budowę bazy i jasno napisz ci chcesz zrobić.
-------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
W powyższym kodzie sprawdzamy czy dany user o nazwie = 'nazwa' istnieje, następnie sprawdzamy pole access w bazie jeżeli ma "m" rozpoczynamy pętle FOR. Teraz sprawdzamy czy w polach numer1, numer2, numer3, numer4, numer5, numer6 jest wartość ="1" Teraz w drugim pliku mam select z nazwą oraz zapytanie do bazy mysql:
Jeżeli wybiorę z selecta nazwę zapytanie rozszerza się o WHERE `nazwa` = "'.$zmiennaZselect.'". Jeżeli nie wybiorę nic z selecta to zapytanie będzie poprostu WHERE !='' Następnie trzeba dodać kolejny warunek do zapytania ".$where." Jak łatwo się domyśleć nazwa z tabeli users dla pola numer1 do numer6 może nie mieć wartość "1" wtedy nie jest brana pod uwagę w pętli FOR. Dlatego muszę zrobić tak by dla pierwszego było "AND" a dla kolejnych było "OR" Reasumując: Zalogowany o nazwie GOŚĆ oraz GOŚĆ2 mają wartości w bazie: GOŚĆ: nazwa = 'GOSC' access = 'm' numer1 = '1' numer2 = '1' numer3 = '1' numer4 = '0' numer5 = '0' numer6 = '1' Czyli poprawne zapytanie będzie dla GOŚCiA :
GOŚĆ2: nazwa = 'GOSC2' access = 'm' numer1 = '0' numer2 = '1' numer3 = '1' numer4 = '1' numer5 = '0' numer6 = '0' Czyli poprawne zapytanie będzie dla GOŚCiA2 :
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
w dalszym ciągu jest tylko "AND" dla numer1='1' a co jeśli nie ma tego numer1='1' tylko zaczyna się od numer2='1' to od razu daje "OR" a powinno być AND.
Jeszcze raz podsumuje o co mi chodzi: Baza mysql nazwa access numer1 numer2 numer3 numer4 numer5 numer6 TEST m 1 1 1 1 1 1 TEST2 m 0 1 0 1 0 1 TEST3 m 0 0 1 1 0 0 teraz dla TEST powinno być:
dla TEST2 powinno być:
dla TEST3 powinno być:
Ten post edytował casperii 14.03.2015, 16:50:43 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nic nie potrafisz sam pokombinować?
-------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dalej to samo
![]() dla TEST zrobiłem numer1="0" , numer2="0", numer3="1" , numer4="1", numer5="1", numer6="1" wyświetla:
gdzie dla pierwszego numeru powinno być zawsze "AND" jak zrobię w bazie dla TEST numer1="1" , numer2="0", numer3="1" , numer4="1", numer5="1", numer6="1" wyświetla poprawnie:
Czyli nie ważne czy jako pierwszy będzie numer3 czy numer4 pod warunkiem że przed nim nie bedzie numer1 oraz numer2 to jako pierwszy wartość "AND" ma otrzymać numer3. Bo cały czas jest tak że jeśli istnieje numer1="1" to wtedy dodaje "AND" a nie o to mi chodzi. Poza tym czemu print $count pokazuje mi 6 skoro np 4 numery mają wartość ="1" ? Ten post edytował casperii 14.03.2015, 18:13:44 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
To zmień $count = 1 i po problemie. POKOMBINUJ.
edit: Cytat Poza tym czemu print $count pokazuje mi 6 skoro np 4 numery mają wartość ="1" ? Jak nie wiesz co robi $cont++ to nie mamy o czym rozmawiać. Ten post edytował Forti 14.03.2015, 18:14:56 -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
wiem co robi ++ tzw. inkrementacja -bynajmniej tak w C++ było.
Forti nie wiem czy dobrze my się rozumiemy, co ja chcę osiągnąć. wydaję mi się , że to powinno być na zasadzie sprawdzamy który numer jest jako pierwszy i dlatego pierwszego numeru dajemy warunek IF ... AND a kolejny OR. Bo zmiana $count=0 na $count=1 robi tyle że nie wychwyta pierwszego numer1="1" jeśli istnieje. Ten post edytował casperii 14.03.2015, 18:20:44 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ty san źle rozumiesz co chcesz zrobić. Masz na stałe kolumny nazwa1, nazwa2 itp. więc:
bardzo brzydkie, nie estetyczne etc. ale twoje kolumny również są brzydkie ![]() edit: nie sprawdzałem czy działa, ale powinno. Opisać Ci to czy rozumiesz? Ten post edytował Forti 14.03.2015, 18:35:43 -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam kod:
Jak zrobić by dla pierwszego wyniku było "AND" a dla pozostałego wyniku "OR" chyba tak będzie łatwiej Kod $tmp= []; for($i = 0; $i < 7; $i++){ if($row['numer'.$i] == '1') array_push($tmp, 'numer' . $i); } $where = ' AND numer IN ('.implode(',', $tmp).')'; oczywiście dodaj gdzieś przechwycenie wyjątku gdy count($tmp) == 0 Ten post edytował ctom 14.03.2015, 19:21:13 -------------------- Polecam MyDevil hosting idealny dla deweloperów
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 9.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Z tego co wnioskuje to kolega chce sprawdzać wartość z bazy a nie pętli
Ten post edytował $_$ 14.03.2015, 20:43:31 |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Z tego co wnioskuje to kolega chce sprawdzać wartość z bazy a nie pętli
To mu także nic nie da. Wydaje mi się, że skłądnia powinna być AND ? Or ? Or ? Or ? i pierwszy parametr ma być pierwsza kolumna posiadająca wartość "1", a wsześniejsze nie brane pod uwagę. Mój przykład powinien mu zadziałać. -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 9.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Skoro w bazie ma int-y to nie rozumiem tego
Cytat WHERE `nazwa`!="" AND `numer` = "numer1"
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
1. co oznaczaja pola numer 1 do numer 6?
2. po co jest druga tabela, co ona przedstawia? 3. Co chcesz uzyskać? Odpowiedź dobrze na te pytania. Zwłaszcza na 3. Zakład o 1000zł, że twój problem rozwiązujesz w zły sposób. -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.07.2025 - 23:53 |