- Home
- Categorie
- Coding e Sistemistica
- PHP
- Risultati motore di ricerca
-
Risultati motore di ricerca
Ciao a tutti, ho creato un motore di ricerca solo che quando faccio una ricerca mi trova tutti i file inseriti nel database e non il singolo (o i singoli file con titolo simile...) che dovrebbe trovare, ora vi posto il codice dei risultati in modo da aiutarmi a vedere dove sia l'errore:
<?php include("header.php"); ?> <?php include("motore.php"); ?> <? require ("config.inc.php"); connessione(); $query_ricerca = "SELECT titolo, indirizzo FROM $nome_tb WHERE parole_chiave LIKE '%$_GET[$cerca]%'"; $risultato_query_ricerca = @mysql_query($query_ricerca, $conn); if ($risultato_query_ricerca) { $mess_3 = "Estrazione dei dati dalla tabella <b>$nome_tb</b> in corso..." . $imm_ok; $mess_3 .= "Estrazione dei dati dalla tabella <b>$nome_tb</b> riuscita..." . $imm_ok; } else { $mess_3 = "Estrazione dei dati dalla tabella <b>$nome_tb</b> in corso..." . $imm_no; $mess_3 .= "Estrazione dei dati dalla tabella <b>$nome_tb</b> non riuscita..." . $imm_no; } while ($risultato = @mysql_fetch_array($risultato_query_ricerca, $conn)) { $risultati .= "<a href=\"$risultato[indirizzo]\" class=\"link\">$risultato[titolo]</a><br>\n"; } if (!$risultati) { $risultati = "La ricerca non ha prodotto risultati..."; } echo $risultati; ?> <?php include("footer.php"); ?>
Vi ringrazio tutti anticipatamente.
-
Secondo me l'errore è qui:
$query_ricerca = "SELECT titolo, indirizzo FROM $nome_tb WHERE parole_chiave LIKE '%$_GET*$cerca*]%'";
Mi fa strano vedere una variabile passata al parametro $_GET
Metti così:$query_ricerca = "SELECT titolo, indirizzo FROM $nome_tb WHERE parole_chiave LIKE '%$_GET[cerca]%'";
Ciao!
-
Scusa ma cosa hai cambiato O.O.
EDIT: ora ho visto e provo :D.
RI-EDIT: Ok ora funziona, una ultima cosa, quando non scrivo niente mi trova tutti i file se faccio un refresh, si può fare in modo che quando non trova risultati con la parola cercata appaia proprio una cosa tipo:
Parola cercata non trovata.
Insomma che ti segnali che nel Database non esista quel file ;).
Grazie ;).
-
Puoi mettere così:
[php]
<?php
include("header.php");
include("motore.php");require ("config.inc.php");
if($_GET["cerca"] != "")
{
connessione();$query_ricerca = "SELECT titolo, indirizzo FROM $nome_tb WHERE parole_chiave LIKE '%$_GET[cerca]%'"; $risultato_query_ricerca = @mysql_query($query_ricerca, $conn); if ($risultato_query_ricerca) { $mess_3 = "Estrazione dei dati dalla tabella <b>$nome_tb</b> in corso..." . $imm_ok; $mess_3 .= "Estrazione dei dati dalla tabella <b>$nome_tb</b> riuscita..." . $imm_ok; } else { $mess_3 = "Estrazione dei dati dalla tabella <b>$nome_tb</b> in corso..." . $imm_no; $mess_3 .= "Estrazione dei dati dalla tabella <b>$nome_tb</b> non riuscita..." . $imm_no; } while ($risultato = @mysql_fetch_array($risultato_query_ricerca, $conn)) { $risultati .= "<a href=\"$risultato[indirizzo]\" class=\"link\">$risultato[titolo]</a><br>\n"; } if (!$risultati) { $risultati = "La ricerca non ha prodotto risultati..."; }
}
else
{
$risultati = "La ricerca non ha prodotto risultati...";
}echo $risultati;
include("footer.php");
?>
[/php]Ciao!
-
Ok, ti ringrazio ;), tutto funziona correttamente, grazie di nuovo ;).
-
Prego
Ciao!