Söka är hörnstenen i Internet . Utan den skulle vi inte kunna hitta något i den stora mängd information . Så någon gång din PHP-webbplatsen kommer förmodligen behöva tillhandahålla söktjänster . Du kan alltid visa Googles söktjänster på din webbplats , men ibland behöver du en söktjänst som är speciellt anpassad till webbplatsens innehåll . Hur man gör en specialiserad sökfunktion varierar beroende på dina behov . Att bygga ett exempel på en PHP sökmotor först kommer att ge dig den erfarenhet du behöver för att hitta nya sätt att expandera på den .
Du behöver :
PHP med MySQL databas
Konfigurera databasen
1
Skapa en MySQL-databas . . Gå till ditt webbhotell 's " Kontrollpanelen " den lösenordsskyddade webbsidor där du kan göra ändringar på din webbplats , och hitta MySQL förvaltning avsnitt . Följ instruktionerna där för att skapa en databas som kallas " ex-sökning " . Skapa en användare för den nya databasen som heter " ex -search-användare " . Ge användaren vad lösenord du önskar .
2 .
Hitta avsnittet i din kontrollpanel där du kan skriva SQL- kommandon för den nya databasen . Det kommer att säga något i stil med " Enter SQL här " eller " köra SQL på din databas "följt av en textruta . En sådan visas automatiskt i de flesta webbhotell kontrollpaneler när du skapar en ny databas . Använd som gränssnitt för att köra följande SQL-kommando genom att kopiera och klistra in den här koden i textrutan :
CREATE TABLE artikeln (
id SMALLINT OSIGNERAD NOT NULL AUTO_INCREMENT primärnyckel,
titel VARCHAR (120 ) NOT NULL ,
artikel-text TEXT NOT NULL ,
FULLTEXT (titel , Artikel- text )
)
En ny tabell skapas . Den kommer innehålla artiklar med en rubrik och en text kropp . MySQL kommer att skapa en " Fulltext " index för tabellen , vilket vi kommer att kunna snabbt söka på artiklar " hela kroppar .
3 .
Fyll din databas . Använd en del artiklar från webben eller göra vissa upp och lägg dem i din " artikel " bordet så vi har lite innehåll att söka på. Din kontrollpanel bör tillhandahålla ett webbgränssnitt för att skapa poster i databasen . (Om du använder andras innehåll , se till att du inte publicerar denna sökmotor på nätet , eftersom det skulle betraktas som plagiat . )
Skapa din sökfunktion
1 .
Gör en HTML-fil som heter " ex-search. html " . Placera filen i din webbplats huvudmappen-den mapp du ser när du först logga in med FTP eller gå till din kontrollpanel s filuppladdning centrum . Använd denna HTML för sidan :
2 .
Skapa en PHP -fil som tar hand om sökningen . Kalla det " exempel-search. php " och starta det med den grundläggande PHP öppnandet tag: ?
Spara filen som " exempel-search. php " och placera den i samma mapp där du placerar HTML-filen .
3 .
Ställ in ditt manus grundläggande variabler . Skapa först en rad med kod ställa in databasen användarens lösenord. I en verksamhet ansökan , skulle du sätta detta lösenord i en separat fil . För vår handledning , kommer vi dock lägga den i koden efter mönstret " $ db_paswd=' "följt av det lösenord du valde för " ex -search-användare "och sedan "'". Till exempel, om exempel -search-användarens lösenord är " abc123 "och sedan använda följande kodrad :
$ db_paswd=' abc123 " ;
Det rekommenderas inte att du använder " abc123 "som ditt lösenord .
ansluta till MySQL- databasen med denna linje kod :
$ dbh=mysql_connect ( " localhost " , " exempel -search-användare " , $ db_paswd ) ,
Få söktermen skickas från HTML-formulär med denna kodrad :
$ sökord=$ _REQUEST [ ' nyckelord ' ] ;
Nu gör sökord säkert för databasen med denna kodrad :
$ nyckelord=mysql_real_escape_string ( $ sökord ) ,
4 .
Kör artikeln sökningen . Ställ in din SQL-fråga med denna kodrad :
$ query=" SELECT id , rubrik , artikel-text från artikel WHERE title LIKE ' % $ sökord % " eller artikel-text LIKE ' % sökord % '" ;
Denna fråga kommer att leta efter alla artiklar med användarens sökordet i titeln eller kroppen . Kör frågan om databasen med denna kodrad :
$ sth=mysql_query ( $ query , $ dbh ) ;
5
visa resultaten. Ta reda på hur många artiklar matchar sökordet använder denna kodrad:
$ RESULT_COUNT=mysql_num_rows ( $ sth ) ,
Om det inte finns några matcher , visa en " Inga träffar " result . Annars visa resultaten. Använd denna kod för att göra det :
if ( $ RESULT_COUNT == 0 ) {//Inga resultat hittades . Visa en " Inga träffar " meddelande? >
Inga träffar .
php } else { //Det finns matcher . Visa dem >
Titel : ?
?
Din kommer skriptet producera rubriken på varje artikel som matchar sökordet .
6 .
Stäng PHP-skript med den avslutande PHP- taggen så här : ?
Author
tips och varningar
Om din hemsida är stor , kan använda en textsökning en belastning på din webbserver.