Seksualni muškarci traže php submit. Kako napraviti algoritam za pretraživanje više riječi u PHP-u iz baze podataka

04.09.2024

U ovom članku ćete naučiti kako kreirati pretragu sadržaja baze podataka za svoju web lokaciju. Ovaj algoritam podržava pretraživanje nekoliko ključnih riječi. Algoritam će odabrati redove tabele baze podataka koji sadrže sve unete ključne reči.

Postoji tabela “vijesti” koja sadrži sljedeća polja: id, naslov i sadržaj:

Moramo pretražiti polje sadržaja u našoj bazi podataka, koje se sastoji od sljedećih kolona, ​​pogledajte primjer na slici iznad. Počnimo sa implementacijom. Prvo, napravimo stranicu za testiranje rada. Sadržat će obrazac s poljem za unos ključne riječi i dugmetom „pronađi“:

Popis HTML koda:

Pretraga baze podataka

U atributima obrasca navodimo putanju do rukovatelja koji sadrži algoritam i metodu naknadnog prijenosa.

Koristimo sesiju za prijenos niza odabranih elemenata.

Da bismo to učinili, pokrećemo ga na samom početku stranice.

Za izlaz ćemo koristiti funkciju print_r().

Kako bismo spriječili da se rezultat prikaže po drugi put nakon ponovnog učitavanja stranice, prekidamo sesiju koristeći unset.

Kreirajmo search.php obrađivač. Prvo pokrenite sesiju i povežite se na bazu podataka:

Za više informacija o povezivanju na bazu podataka putem PDO-a, pogledajte.

Rad algoritma je prikazan na dijagramu:

Analizirajmo uzorak na osnovu prve riječi, koristeći upit za pretraživanje "kako napraviti web stranicu" kao primjer:

Prvo, dobijamo string iz obrasca koristeći metodu POST u varijablu $str. Podijelimo ovaj red na riječi odvojene razmacima pomoću funkcije expode i brojimo broj riječi. Izvodimo upit u kojem provjeravamo prisutnost prve riječi u stupcu sadržaja. Kreiramo prazan niz i u njega upisujemo vrijednosti dobivene kao rezultat uzorkovanja na zahtjev. Broj primljenih elemenata bilježimo u $id_count.

Ovaj dio algoritma radi na principu “odstranjivanja korova”. Recimo da u bazi ima deset članaka. Nakon odabira prve riječi, dobivamo id članaka koji sadrže riječ “kako” je bilo šest takvih članaka. Zatim tražimo drugu riječ među ovih šest članaka, sužavajući time pretragu. Ova iteracija ostavlja četiri članka koji uključuju i riječi „kako“ i „uraditi“. U posljednjoj iteraciji, među preostala četiri članka, tražimo riječ “site”. Nakon ovog prolaza, dobijamo id jednog jedinog članka, koji uključuje sve ključne riječi.

Broj iteracija jednak je broju riječi u upitu za pretraživanje. Konačan broj primljenih ID-ova može biti bilo koji, ovisno o zahtjevu i sadržaju tabele baze podataka.

Ako, kao rezultat izvršavanja upita u petlji, dobijemo id (temp varijabla) jednaka jednom od id-ova prethodne selekcije (id_mass), onda ovaj id ostavljamo nepromijenjenim. U suprotnom, dodjeljujemo vrijednost -1 elementu id_mass[ j ], čime ga isključujemo iz obrade.

Nakon što se petlje završe, dobijamo niz id u kojem se nalaze ključne riječi i -1. Da bismo korisniku prenijeli samo tražene ID-ove, koristimo petlju koja provjerava odbacivanje svih elemenata jednakih -1. Preostale elemente prenosimo u niz sesija:

Funkcija zaglavlja se koristi za preusmjeravanje klijenta na stranicu za pretraživanje.

Kao rezultat izvršenih radnji, dobili smo funkciju pretraživanja za tablicu baze podataka. Uz manje modifikacije, ovaj algoritam se može koristiti za pronalaženje i pretraživanje bilo kojeg polja u bilo kojoj bazi podataka.

Ovaj članak govori u detalje o korištenju PHP _SELF varijable.

Šta je PHP _SELF varijabla?

PHP _SELF varijabla vraća ime i putanju tekuće datoteke (u odnosu na korijen dokumenta). Ovu varijablu možete koristiti u atributu radnje obrasca. Postoje i neke nijanse koje biste trebali znati. Naravno, ne možemo zanemariti ove nijanse.

Pogledajmo nekoliko primjera.

Echo $_SERVER["PHP_SELF"];

1) Pretpostavimo da se vaš php fajl nalazi na sledećoj adresi:

Http://www.yourserver.com/form-action.php

U ovom slučaju, PHP _SELF varijabla će sadržavati:

"/form-action.php"

2) Pretpostavimo da se vaš php fajl nalazi na ovoj adresi:

Http://www.yourserver.com/dir1/form-action.php

PHP_SELF će biti:

"/dir1/form-action.php"

PHP _SELF u atributu radnje obrasca. Zašto je tamo bila potrebna?

Obično se PHP _SELF varijabla koristi u atributu akcije oznake obrasca. Atribut action specificira adresu na koju će biti poslan sadržaj obrasca nakon potvrde (korisnik klikne na dugme sa type="submit"). Po pravilu, ovo je ista stranica sa koje je obrazac otišao.

Međutim, ako preimenujete datoteku na koju upućuje obrazac, morat ćete preimenovati ime datoteke u atributu akcije, inače obrazac neće raditi.

PHP _SELF varijabla će vas spasiti od nepotrebnih ispravki, jer će adresa stranice biti generisana automatski na osnovu imena fajla.

Recimo da imate datoteku obrasca pod nazivom form-action.php i želite da se obrazac pošalje u istu datoteku nakon potvrde. Obično pišu ovako:

Ali možete koristiti PHP _SELF varijablu umjesto form-action.php. U ovom slučaju kod će izgledati ovako: