![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.10.2012 Ostrzeżenie: (0%)
|
Dzień dobry.
Wszystkiego dobrego w Nowym Roku. Mam pewien problem z przesłaniem/odebraniem wartości z pola formularza. Chodzi o ty by wysłanie formularza z nie wypełnionymi polami nie dało rezultatu wyświetlenia wszystkich rekordów z tabeli. Poniżej kod w którym już nie wiem co robię źle.(IMG:style_emoticons/default/sad.gif)
jest tam trochę komentarzy bo próbowałem na różne sposoby ale nie wiem już co mi nie gra. Oczywiście chodzi tutaj również o wyszukiwanie po polu tekstowym znaczy części tylko imienia lub nazwy czy nazwiska. HELP Ten post edytował kapsel2105 6.01.2016, 23:04:25 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 885 Pomógł: 231 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%)
|
Nie wiem do końca o co ci chodzi, ale z tego co widzę w zapytaniu MySQL to potrzebujesz wszystkich danych aby wyświetlić jeden rekord, bo dajesz wszędzie AND
Proponuję trochę pobawić się logiką, bo myślę że tutaj masz problem: A=1 B=1 C=1 A = 1 ^ B = 1 ^ C = 1 => TRUE A = 1 ^ B = 0 ^ C = 1 => FALSE A = 0 v B = 1 v C = 1 => TRUE A = 0 v B = 1 v C = 0 => TRUE A = 0 v B = 0 v C = 0 => FALSE Dlatego jak chcesz więcej rekordów to wstaw warunki: SELECT * FROM $tabela_k WHERE {$sqlNumer} {$sqlNazwa} {$sqlImie} {$sqlNazwisko} i w zależności ile pól input jest wypełnione to dana zmienna ci się wpisze do zapytania. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.10.2012 Ostrzeżenie: (0%)
|
Dziękuję za szybką sugestię.
Lecz chyba nie dopisałem co potrzebuję. (Przepraszam pewnie zbyt długo już nad tym siedziałem i szybciej myślałem niż palce pisały) Więc tak. Jest to formularz przez który wyszukujemy w bazie pasujące rekordy i je wyświetlamy. Miało to działać tak że mając pola NR, UMOWA, NAZWA, IMIE, NAZWISKO, TELEFON, itd... wpisując tylko pole NR pokazuje wszystkie rekordy posiadające wpisany NR (tutaj akurat jest to id w bazie więc nie ma problemu) ale dalej UMOWA, NAZWA, IMIE, NAZWISKO są polami VARCHAR i TEXT. Wysłanie formularza z niewypełnionymi polami powoduje wyświetlenie wszystkich rekordów z tabeli. Jako że w zapytaniu jest LIKE w polach to tutaj wiadomo podczas wpisywania części nazwy czy imienia powinno wyświetlić tylko te rekordy posiadające zadany ciąg znaków. Lecz niestety nie mogę sobie poradzić z tym że jak wyśle formularz z niewypełnionymi polami to wyświetla wszystkie rekordy z tabeli. A tam w zapytaniu może zamiast AND powinno być OR. Choć najlepiej jak był operator LUB/ORAZ (IMG:style_emoticons/default/smile.gif) Niestety nie siedzę w PHP i MySQL na co dzień (IMG:style_emoticons/default/sad.gif) |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 885 Pomógł: 231 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%)
|
To moja sugestia nadal jest tak samo aktualna
stwórz sobie szereg IFów który sprawdza:
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
@Tomplus Twoje wywali błąd, bo nie masz złączeń AND pomiędzy warunkami.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 04:10 |