motore di ricerca

andrex1191

Utente Attivo
5 Apr 2011
78
0
0
Salve a tutti, ho provato ad utilizzare questa guida: https://www.mrw.it/php/articoli/motore-ricerca-interno-php-mysql_838.html
Ma purtroppo la query non funziona come dovrebbe, in effetti è un po strano, perchè per alcuni record funziona, per altri no, insomma non capisco cosa ci sia che non va..vi posto il codice:

PHP:
$arr_txt = explode(" ", $testo);
              $sql = "SELECT DISTINCT film.titolo_film,film.genere,film.durata,film.data_uscita,film.trama,film.regista,film.username,film.nome_cover,
                     film.orario_pubblicazione,film.paese
                     FROM film,attore,scrittore,produzione,recita,scrive,produce
                     WHERE film.titolo_film = recita.titolo_film  AND film.titolo_film = scrive.titolo_film AND film.titolo_film = produce.titolo_film AND
                     recita.attore = attore.attore AND scrive.scrittore = scrittore.scrittore AND produce.produzione = produzione.produzione AND";
              
              for ($i=0; $i < count($arr_txt); $i++)
               {
                 if ($i > 0)
                {
                 $sql .= " AND ";
                }
                  $sql .= "(film.titolo_film LIKE '%" . $arr_txt[$i] . "%' OR film.genere LIKE '%" . $arr_txt[$i] . "%' OR YEAR(film.data_uscita) LIKE '%" . $arr_txt[$i] . "%'
                  OR film.regista LIKE '%" . $arr_txt[$i] . "%' OR film.username LIKE '%" . $arr_txt[$i] . "%' OR film.paese LIKE '%" . $arr_txt[$i] . "%'
                  OR recita.attore LIKE '%" . $arr_txt[$i] . "%' OR scrive.scrittore LIKE '%" . $arr_txt[$i] . "%' OR produce.produzione LIKE '%" . $arr_txt[$i] . "%')";
               }
              $estraiart = mysql_query($sql, $conn) or die("errore superquery". mysql_error());

Il database su cui dovrebbe agire la query come si può notare è abbastanza grande, spero riusciate ad aiutarmi.
Grazie

Ps. Felice 2012 a tutti
 
Quando dici che non funziona intendi che non ti restituisce risultati o che ti da errore?
 
Restituisce risultati ma solo a volte, è questa la cosa strana..
Se inserisco come chiave di ricerca un attore, mi mostra solo un film dove c'è quell'attore e non anche gli altri, se vado per regista invece mi mostra tutti i film, nessun errore, a funzionare funziona, ma non al 100%, non sempre..
 
up!
Nessuno riesce a darmi una mano? effettivamente sono fermo da due settimane causa questo problema..
 
Non uppare, cerchiamo di rispondere a tutti con il tempo che abbiamo a disposizione.
Come stampi i risultati delle query?
 
Li stampo in un certo modo, con una certa formattazione ecc ecc, ma quello funziona bene, poichè ci sono vari tipi di ricerca, per regista, per attore ecc che funzionano tutti alla perfezione e la stampa dei risultati è la stessa per tutti, e poi c'è il ricerca "libero" con campo di testo che non va come dovrebbe, bisogna lavorare sulla query e forse su quel for, ma il motivo per cui non funziona secondo me è sicuramente la query.

Ps. Chiedo scusa, non upperò più

Grazie per le risposte
 

Discussioni simili