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- webbplats kommer förmodligen att behöva tillhandahålla söktjänster . Du kan alltid bädda Googles söktjänster på din hemsida , men ibland behöver du en söktjänst speciellt lämpad till webbplatsens innehåll . Hur man gör en specialiserad sökfunktion kommer att variera beroende på dina behov . Dock kommer bygga ett exempel på en PHP sökmotor först ge dig den erfarenhet du behöver för att hitta nya sätt att expandera på den . Saker du behöver PHP med MySQL -databas Visa fler instruktioner Konfigurera databasen 1
Skapa en MySQL-databas . Gå till ditt webbhotell : s " kontrollpanel " de lösenordsskyddade webbsidor där du kan göra ändringar på din webbplats , och hitta MySQL förvaltning avsnittet . 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 - sök - användare " . Ge användaren valfritt lösenord du önskar . 2
Hitta avsnittet i kontrollpanelen där du kan skriva in SQL-kommandon för den nya databasen . Det kommer att säga något i stil med " Enter SQL here " eller " köra denna 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 detta 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 UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
titel VARCHAR ( 120 ) NOT NULL ,
article- text tEXT NOT NULL ,
FULLTEXT ( titel , artikel - text ) katalog
) katalog
ny tabell skapas . Den kommer att innehålla artiklar med en titel och en brödtext . MySQL kommer att skapa en " fulltext " index för tabellen , vilket betyder att vi kommer att kunna snabbt söka artiklar " hela kroppar . 3
fylla din databas . Använd några artiklar från webben eller göra något upp och lägg dem i din " artikel" bord så vi har lite innehåll för 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 sökfunktion 4
Gör en HTML-fil som heter " ex - search.html " . Placera filen på din webbplats huvudsakliga mapp - den mapp som du ser när du först logga in med FTP eller gå till din kontrollpanel för filuppladdning centrum . Använd denna HTML för sidan :
< formen method = " POST " action = " exempel - search.php " >
Ange ett sökord :
< input type = " submit " value = " Go " />
< /body>
< /html > 5
Skapa en PHP-fil som kommer att hantera sökandet . Kalla det " ex - search.php " och starta det med den grundläggande PHP inledande taggen : ?
< Php
Spara filen som " exempel - search.php " och placera den i samma mapp där du placerar HTML-filen . 6
Ställ in ditt manus grundläggande variabler . Först skapa en kodrad ställa databasen användarens lösenord . I en verksamhet ansökan , skulle du sätta lösenordet i en separat fil . För vår handledning , kommer vi emellertid att lägga den i koden följer mönstret " $ db_paswd = ' " följt av det lösenord du valde för " ex - sök - användare " och sedan " " ; " . Till exempel, om ex - sök - användarens lösenord är " abc123 ", sedan använda följande kodrad :
$ db_paswd = ' abc123 ", p Det rekommenderas inte att du använder " . abc123 " som lösenord
Kör artikeln sökning. Konfigurera din SQL-fråga med denna kodrad :
$ query = " SELECT id , titel , artikel - text från artikel WHERE title LIKE ' % $ sökord % ' eller article- text LIKE ' % sökord % ' " ;
Denna fråga kommer att leta efter alla artiklar med användarens sökordet i rubriken eller kroppen . Kör frågan om databasen med denna kodrad :
$ sth = mysql_query ( $ query , $ DBH ) , 8
visa resultaten . Ta reda på hur många artiklar matcha sökord med denna kodrad :
$ RESULT_COUNT = mysql_num_rows ( $ sth ) , p Om det inte finns några matcher , visa ett " nej matcher " result . Annars visa resultaten . Använd detta block av kod för att göra det :
if ( $ RESULT_COUNT == 0 ) { //Inga resultat hittades . Visa ett " nej matcher " budskap ? >
Inga träffar hittades .
< ? php } else { //det finns matcher . Visa dem >
Titel : ? ? ? < Php echo $ result [ ' title ' ] >
ditt manus kommer ut titeln på varje artikel som matchar söktermen 9
Stäng din PHP-skript med avslutande PHP -taggen så här : . ?