[XML][HTML][PHP]Funkcja wyszukiwania(przeszukiwania XML). |
[XML][HTML][PHP]Funkcja wyszukiwania(przeszukiwania XML). |
4.06.2018, 11:59:44
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 4.05.2018 Ostrzeżenie: (0%) |
Cześć
Mam stworzona wyszukiwarkę w HTMLu i wyszukiwanie danych w bazie XML. Problemem jest sposób wyświetlenia. Gdy w oknie szukania wpisze hasło z bazy XML wyświetla wszystkie artykuły zamiast tego jednego konkretnego, a także podczas wpisania hasła z poza bazy nie wyświetla się komunikat "Nie znaleziono szukanego hasła". Ktoś jest w stanie pomóc w stworzeniu poprawnej funkcji? link wyświetlenia: https://zapodaj.net/1e95528b9926a.png.html plik szukaj.php
plik wyniki.php
plik encyklopedi.xml
Ten post edytował matt77 4.06.2018, 12:11:08 |
|
|
4.06.2018, 14:34:35
Post
#2
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
Ten post edytował Neutral 4.06.2018, 14:34:49 |
|
|
4.06.2018, 15:28:15
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 4.05.2018 Ostrzeżenie: (0%) |
super, zdecydowanie lepiej działa. ta zmienna "var" czemu odpowiada, co realizuje? sprawdza czy coś zostało wpisane ?
Ten post edytował matt77 4.06.2018, 15:29:07 |
|
|
4.06.2018, 17:03:09
Post
#4
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
"If" sprawdza, czy zmienna "var" jest równa lub większa od ilości tagów (znaczników) "artykul" w XML.
Teraz, gdy wpiszesz coś w pole o nazwie "artykul" i nie będzie zgodne z "tytul", to zmienna "var" zostanie zinkrementowana tyle razy ile razy wykona się pętla foreach, a pętla ta wykona się w Twoim przypadku dwa razy, ponieważ masz tylko jeden tag artykul i drugi tag artykul, czyli jak już napisałem pętla wykona się dwukrotnie. Czyli u Ciebie "if" sprawdza to:
Gdy dodasz nowe tagi "<artykul>" w XML, to wtedy zależnie od ich liczby, tyle razy wykona obrót pętla. Gdy np. tych tagów będziesz mieć np. 5, to wtedy "if" sprawdzi taki warunek:
Bo, gdy wpiszesz niepasujące do niczego hasło, to wtedy zmienna "var" zostanie zinkrementowana w tym przykładzie pięciokrotnie (tagów jest pięć), więc warunek się sprawdzi. Można by tu oczywiście zastosować zmienną typu "string", żeby nie obciążać obliczeniami CPU, ale napisałem jak napisałem. Gdyby jednak zastosować tutaj zamiast $var=0, np. $var='yes', to wtedy można by napisać tak:
Lub:
Ten post edytował Neutral 4.06.2018, 17:07:29 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 18:12 |