Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 55 di 56
  • livello intermedio
Indice lezioni

Un semplice motore di ricerca per il blog

Creazione di un motore di ricerca di base per cercare i post dei blog
Creazione di un motore di ricerca di base per cercare i post dei blog
Link copiato negli appunti

In una buona applicazione per la gestione di un blog non può mancare un motore di ricerca interno per trovare velocemente i post sulla base di parole chiavi da confrontare con il contenuto della tabella dedicata ai post; il meccanismo che permetterà il funzionamento del semplicissimo motore di ricerca proposto in questa trattazione si basa su un una query SELECT che presenta qualche differenza rispetto a quelle analizzate in precedenza.

Si immagini per esempio di voler ricercare il termine "data" all'interno del contenuto dei post:

  • la chiave verrà passata all'applicazione per la ricerca sotto forma di parametro di input inviato tramite form;
  • l'applicazione effettuerà un controllo sulla validità del parametro di input e lo utilizzerà come valore da associare ad una variabile ($key
  • a questo punto verrà effettuata una query SELECT SELECT * FROM post
  • la query verrà effettuata confrontando la parola ricercata con il contenuto dei record relativi ai titoli e al testo dei post (WHERE (titolo_post LIKE '%" . $key . "%') OR (testo_post LIKE '%" . $key . "%'
  • sarà possibile ottenere un risultato valido non soltanto se la chiave sarà rilevata all'interno dei titoli e dei testi ma anche se verrà trovata in uno solo di questi termini di confronto, ciò è possibile grazie all'utilizzo dell'operatore OR al posto di AND, il primo infatti, a differenza del secondo, restituisce TRUE anche se soltanto uno degli argomenti di un confronto risulta vero;
  • i risultati della query verranno ordinati in senso decrescente sulla base dei valori contenuti nel campo data_post ORDER BY data_post

Di seguito viene proposto il codice necessario per il motore di ricerca:

LIKE è un operatore di confronto che permette di effettuare una comparazione tra campi simili anche se non uguali;

I due simboli percentuali (% WHERE "titolo_post =' . $key . ' OR testo_post =' . $key . '

Si noti come la chiave di ricerca, prima di partecipare alla query, sia stata validata tramite un'espressione regolare (preg_match("/^[a-z0-9]+$/i", $_POST['key']")

Ti consigliamo anche