Motore di ricerca interno

sambo

Utente Attivo
3 Apr 2012
72
0
0
Un saluto a tutti,
sto cercando in rete uno script già pronto e funzionante, che mi consenta di creare un motore di ricerca interno al mio sito.
Non è necessario che sia un motore complesso, basta che esegua la funzione principale.
Ho trovato qualcosa, ma non sono riuscito nell'installazione.
Sapete consigliarmi qualche script di facile applicazione, anche senza database.

Io ho uno spazio web che supporta il lingua php e ha database mysql

Grazie a tutti
 
I miei siti sono costruiti sempre in Xhtml e css. Non utilizzo quasi mai csm, fatta eccezione per il phpbb3 o altre versioni.
In quest'ultimo, ho aggiunto anche script php form mail, per invio dati ricavati dal form e inviati nella mia email.
Il server che ospita i miei siti supporta il php e mi offre database mysql.

Adesso vorrei aggiungere un motore di ricerca interno.

Grazie
 
Ho scaricato lo script e provato ad installarlo, purtroppo c'è qualcosa che non va.

Ho creato i due file: la parte html - la parte php

Ho personalizzato i vari campi: id - psw ecc.. in base ai dati del mio database.
Quindi ho creato una struttura prova all'interno del database mysql, ma quando vado a "cercare" i parametri da me inseriti manualmente, le parole chiave non forniscono risultati.

Oltre a questo, ho qualche dubbio che sia proprio questo il motore di ricerca interno che cercavo.

In altre parole, io vorrei che l'utente del sito, digitando una qualsiasi parola chiave che risulti presente in una parte delle pagine web (ad esempio un articolo - una recensione) trovi tutti gli argomenti che contengano tale parola chiave.
Da quello che ho capito, questo script andrebbe a ricercare solo quei parametri contenuti nel database. Se ad esempio nel database mysql è presente un elenco di utenti o di articoli, il motore consente di trovarli, ma non sarebbe in grado di "catturare" elementi da articoli o altro scritto nelle stesse pagine.

Potreste aiutarmi a capire meglio questo concentto e anche il perchè lo script non cattura nemmeno elementi inseriti manualmente nel database.

Grazie a tutti :byebye:
 
ciao
posta il codice che hai fatto che proviamo a vedere

- Ciao, prima di postare il codice, volevo però capire se questo motore risponda o meno alle mie esigenze.
Io vorrei fare in modo, che se l'utente digita una parola chiave che è presente in un articolo o recensione di una delle pagine di quel sito, gli venga riportato come risultato quella determinata pagina. Forse ho capito male, ma questo script permetterebbe di ricercare solo i vari parametri inseriti manualmente o meno, nel database mysql. Potresti aiutarmi a capire anche questo aspetto?

- Per quanto riguarda il codice, ho creato prima la pagina html:

motore.html (Nome pagina)

Codice:
<form method="post" action="cerca.php">
<input type="text" name="testo">
<input type="submit" value="Cerca">
</form>

Poi ho creato la pagina php:

cerca.php (nome pagina)
Quelle in rosso sono le parti che ho modificato.

Codice:
<?
    $cn = mysql_connect("[COLOR="#FF0000"]localhost[/COLOR]", "[COLOR="#FF0000"]sito76[/COLOR]", "[COLOR="#FF0000"]xxxxxx"[/COLOR]);
    @mysql_select_db("[COLOR="#FF0000"]my_sito76[/COLOR]", $cn);
    $testo = htmlspecialchars(addslashes($_POST["testo"]));
?>
<html><head><title>Risultati della ricerca</title></head><body>
<p>
<b>Risultati della ricerca:</b>
<?
    if (isset($testo) == false || $testo == "")
    {
        echo "nessun risultato!";
    }
    else
    {
        echo $testo;
    }
?>
</p>
<?
    if (isset($testo) == false || $testo == "")
    {
?>
<p>Specificare un criterio di ricerca.</p>
<?
    }
    else
    {
        $arr_txt = explode(" ", $testo);
        $sql = "SELECT * FROM articoli WHERE ";
        for ($i=0; $i<count($arr_txt); $i++)
        {
            if ($i > 0)
            {
                $sql .= " AND ";
            }
            $sql .= "(titolo LIKE '%" . $arr_txt[$i] . "%' OR descrizione LIKE '%" . $arr_txt[$i] . "%')";
        }
        $sql .= " AND cat_id = art_categoria ORDER BY art_timestamp DESC";
        $query = mysql_query($sql, $cn);
        $quanti = mysql_num_rows($query);
        if ($quanti == 0)
        {
?>
<p>Nessun risultato!</p>
<?
        }
        else
        {
            for($x=0; $x<$quanti; $x++)
            {
                $rs = mysql_fetch_row($query);
                $id = $rs[0];
                $titolo = $rs[1];
?>
<p><a href="leggi.php?id=<?echo $id?>"><?echo $titolo?></a></p>
<?
            }
        }
    }
?>
</body></html>

Infine ho creato una database prova con il nome: my_sito76 (lo stesso che ho assegnato nel file php)

Ho creato alcune cartelle tramite il phpadmin e inserito del contenuto.

Quindi ho uppato tutto nel server di prova che supporta il php e ho digitato nella pagina html diverse parole chiavi, corrispondenti ai parametri inseriti manuamente nel database. In tutti i casi lo script non mi riporta nessun risultato di ricerca.

Potresti aiutarmi a capire e trovare la giusta strada, sia per il primo che per il secondo problema?

Grazie per il tuo aiuto

Ciao :byebye:
 
ciao
...inseriti manualmente o meno, nel database mysql
si
posta comunque anche il dump della tabella che hai fatto.
mi copio e ti dico.
comunque per la mia (poca) esperienza le ricerche sono fatte su dati inseriti nel db. se (es) hai un testo anche lungo di una news nel db puoi cercare di fare una ricerca full text. se devi cercare nelle pagine dovresti fare un casella di ricerca tipo google, ma non mi ricordo come si fa (eventualmente cerco)
 

Discussioni simili