motore di ricerca interno al sito

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Vorrei realizzare il classico "cerca nel sito" con interfaccia ad un database. Ho trovato nella sezione tutorial questo
HTML:
https://www.mrw.it/php/articoli/motore-ricerca-interno-php-mysql_838.html
e lo volevo adattare alla mia esigenza. Nel mio caso la ricerca deve essere effettuata su più tabelle anche se su un unico database. Ho quindi impostato il tutorial nel seguente modo:
PHP:
<?php
   include 'connessione.php';
   $testo = htmlspecialchars(addslashes($_POST['testo']));
?>
<html><head><title>Risultati della ricerca</title></head><body>
<h2>Risultati della ricerca</h2>
<p>
<?php
    if (isset($testo) == false || $testo == "")
    {
        echo "nessun risultato!";
    }
    else
    {
        echo $testo;
    }
?>
</p>
<?php
    if (isset($testo) == false || $testo == "")
    {
?>
<p>Specificare un criterio di ricerca.</p>
<?php
    }
    else
    {
        $arr_txt = explode(" ", $testo);
        $sql = "SELECT comuni.comune, comuni.descrizione, comuni.nota, foto.alt, piattitipici.nome_piatto, piattitipici.descrizione,
                      eventi.titolo, eventi.testo, eventi.organizzazione, struttureric.denominazione, monumenti.monumento,
                      monumenti.descrizione, itinerari.itinerario, itinerari.descrizione,
                      FROM comuni
                      LEFT JOIN foto ON foto.id_comune = comuni.id
                      LEFT JOIN piattitipici ON piattitipici.id_comune = comuni.id
                      LEFT JOIN eventi ON eventi.id_comune = comuni.id
                      LEFT JOIN struttureric ON struttureric.id_comune = comuni.id
                      LEFT JOIN monumenti ON monumenti.id_comune = comuni.id
                      LEFT JOIN itinerari ON itinerari.id_regione = comuni.id_regione
                      WHERE ";

        for ($i=0; $i<count($arr_txt); $i++)
        {
            if ($i > 0)
            {
                $sql .= " AND ";
            }
            $sql .= "(comuni.comune LIKE '%" . $arr_txt[$i] . "%' OR comuni.descrizione LIKE '%" . $arr_txt[$i] . "%' OR comuni.nota LIKE '%" . $arr_txt[$i] . "%' OR
                      foto.alt LIKE '%" . $arr_txt[$i] . "%' OR
                      piattitipici.nomepiatto LIKE '%" . $arr_txt[$i] . "%' OR piattitipici.descrizione LIKE '%" . $arr_txt[$i] . "%' OR
                      eventi.titolo LIKE '%" . $arr_txt[$i] . "%' OR eventi.testo LIKE '%" . $arr_txt[$i] . "%' OR  eventi.organizzazione LIKE '%" . $arr_txt[$i] . "%' OR
                      struttureric.denominazione LIKE '%" . $arr_txt[$i] . "%' OR 
                      monumenti.monumento LIKE '%" . $arr_txt[$i] . "%' OR monumenti.descrizione LIKE '%" . $arr_txt[$i] . "%' OR
                      itinerari.itinerario LIKE '%" . $arr_txt[$i] . "%' OR itinerari.descrizione LIKE '%" . $arr_txt[$i] . "%'
                     )";
        }
        $sql .= " AND cat_id = art_categoria ORDER BY art_timestamp DESC";
        $query = mysql_query($sql, $link);
        $num_righe = mysql_num_rows($query);
        if ($num_righe == 0)
        {
?>
<p>Nessun risultato!</p>
<?php
        }
        else
        {
            for($x=0; $x<$quanti; $x++)
            {
                $rs = mysql_fetch_row($query);
                $comune = $rs[0];
                $descrizione_com = $rs[1];
                $nota_com = $rs[2];


?>
<p><a href="leggi.php?id=<?echo $comune?>"><?echo $descrizione?></a></p>
<?php
            }
        }
    }
?>

ma quando vado ad eseguire lo script mi esce il messaggio:

Risultati della ricerca
cerca nel sito


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/adivades000005/httpdocs/motore.php on line 58

Nessun risultato!

Ho pensato che era dovuto al fatto che facevo riferimento a più tabelle e ho riscritto lo script per una sola tabella ma ottengo lo stesso messaggio che l'argomento di mysql_num_rows() non è valido.
A questo punto non riesco a capire dove è l'errore visto che ho seguito di pari passo il tutorial.

una volta trovato l'errore in mysql_num_rows è corretto impostare lo script con le JOIN per la ricerca in più tabelle?
Grazie per l'aiuto
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
prova così:
PHP:
$query = mysql_query($sql, $link) or die(mysql_error());
che errore ti restituisce?
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Inserendo
PHP:
 or die(mysql_error());
ho avuto conferma di ciò che intuivo, ossia che l'errore era nella riga:
PHP:
$sql .= " AND cat_id = art_categoria ORDER BY art_timestamp DESC";
a questo punto però non so come adattarlo al mio caso visto che nel tutorial non mi chiarisce a cosa fa riferimento.
Ho eliminato questa riga ma ho l'impressione che in questo modo qualsiasi parola inserisca come criterio di ricerca ottengo sempre tutti i risultati, invece io voglio solo il testo che contiene la parola '$testo'.
In questo momento sono nel buio totale :crying::(
 
Discussioni simili
Autore Titolo Forum Risposte Data
D [ASP] Motore di ricerca interno su 2 tabelle Classic ASP 3
A [HTML] motore di ricerca interno HTML e CSS 12
O Motore di ricerca interno PHP 4
Shyson Motore di ricerca interno PHP 26
F Creare un motore di ricerca interno al sito PHP 1
A Motore di ricerca interno al sito PHP 1
S Motore di ricerca interno PHP 11
M motore di ricerca interno al sito PHP 8
H Motore di ricerca interno google?? HTML e CSS 3
P Motore Di Ricerca Interno Al Sito Javascript 1
A motore di ricerca interno PHP 1
B motore di ricerca interno HTML e CSS 3
E motore di ricerca interno Classic ASP 44
E impostazioni pagina risultati motore ricerca interno sito HTML e CSS 5
L Cosiglio su come realiz.. un motore ricerca interno HTML e CSS 1
R Motore di ricerca interno con Google Classic ASP 4
M Motore Di Ricerca Interno Al Sito HTML e CSS 1
G motore di ricerca interno HTML e CSS 0
M Motore Di Ricerca Interno E Contatore SEO e Posizionamento 2
L motore di ricerca all'interno sito Discussioni Varie 0
L motore di ricerca all'interno sito Discussioni Varie 1
grottafelix Guida a realizzazione motore di ricerca interno Classic ASP 23
peppoweb Un motore di ricerca interno al sito con Dreamweaver HTML e CSS 1
L PHP motore di ricerca nel sito PHP 1
F Visualizzazione motore di ricerca SEO e Posizionamento 2
E Problema motore di ricerca FULL_TEXT PHP 0
ANDREA20 [PHP] motore di ricerca nel sito PHP 11
A [PHP] Problema paginazione motore di ricerca PHP 48
V motore di ricerca e voci link Ajax 2
ANDREA20 [HTML] crea motore di ricerca HTML e CSS 1
C Motore di ricerca Personalizzato di google HTML e CSS 1
N Motore di ricerca con MATCH e AGAINST PHP 1
I Motore di ricerca php PHP 2
Devil-94 Motore di ricerca con google e javascript Javascript 4
M [CERCO] creare un motore di ricerca Offerte e Richieste di Lavoro e/o Collaborazione 4
M aiuto per motore di ricerca PHP 0
StarFish Eventi da tastiera su motore di ricerca JS Javascript 1
M motore di ricerca complesso php PHP 2
O sfruttare informazioni prese da altre pagine internet o il motore di ricerca di un'altro sito PHP 0
L Problema META NAME description [MOTORE RICERCA] HTML e CSS 0
P Problemi motore di ricerca PHP 12
A [RISOLTO]Motore di ricerca PHP 23
A [RISOLTO]Motore di ricerca PHP 2
P motore di ricerca sql da <a href"..">nome</a> PHP 5
A motore di ricerca su più tabelle PHP 0
Sargon motore (motorino) di ricerca PHP 3
P Ajax jquery inserire un loader per motore di ricerca Ajax 2
M Problemi Motore di RICERCA INTERNA NEL SITO Javascript 0
Sargon Motore di ricerca, nuovo problema PHP 3
Sargon motore di ricerca avanzato (particolare problematica) PHP 12

Discussioni simili