Avrei la necessità di fare delle ricerche mirate nel database ma non riesco nell'impresa .
In pratica vorrei che mi venisse visualizzato solo il testo dell'articolo il cui titolo sia uguale alla frase che è stata digitata nel Form .
Invece mi vengono visualizzati tutti i testi abbinati ai titoli che contengono uno o più termini di ricerca .
Faccio un esempio :
La tabella news contiene i seguenti campi :
id - titolo - data - testo - autore
titolo
L'arte in Australia
testo
L'Australia è un paese .... ecc ....
titolo
Un viaggio in Australia
testo
John era appena partito .. ecc ....
Bene - adesso se digito L'arte in Australia mi viene visualizzato il testo L'Australia è un paese .... ecc ....
Se però digito nel Form solo Australia ricevo come risultato :
L'Australia è un paese .... ecc ....
John era appena partito .. ecc ....
Invece vorrei che digitando solo Australia mi venisse visualizzato il messaggio :
Si prega di digitare il titolo esatto dell'articolo ma non ho capito come impostare e dove mettere or die
E digitando Un viaggio in Australia mi venisse visualizzato solo il testo di quest'articolo e non anche quello di altri
Ho provato in molti modi ma niente da fare !
Ad esempio così mi visualizza tutti gli articoli contenuti nel database :
$query = "SELECT id, testo, data FROM news WHERE titolo=".$parola."" . $query;
Quest'altra modifica invece mi cerca il testo uguale alla digitazione :
$query .= "titolo = '%$parola%' OR testo LIKE '%$parola%' OR autore LIKE '%$parola%' OR ";
Questo e il sorgente
[ codice php ]
<?php
$chiave=$_REQUEST['chiave'];
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$keys = explode (",", $chiave);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys))
{ $parola = trim($parola);
if ($parola != "")
$query .= "titolo LIKE '%$parola%' OR testo LIKE '%$parola%' OR autore LIKE '%$parola%' OR ";
}
$query .= " 0";
$query = "SELECT id, testo, data FROM news WHERE " . $query;
$result = mysql_query($query, $db);
if ($query == FALSE)
die ("Questo die e sbagliato ma se lo tolgo non va");
while ($row = mysql_fetch_array($result))
{
echo "<a> .date("",$row['data']) . "  {$row['testo']}</a><br>";
}
mysql_close($db);
foot();
?>
[ / codice php ]
Inoltre vorrei sapere se e possibile dare un effetto di testo al risultato che viene visualizzato
Ringrazio in anticipo per un eventuale risposta che possa essermi di aiuto per risolvere
il problema .
:book:
:book:
In pratica vorrei che mi venisse visualizzato solo il testo dell'articolo il cui titolo sia uguale alla frase che è stata digitata nel Form .
Invece mi vengono visualizzati tutti i testi abbinati ai titoli che contengono uno o più termini di ricerca .
Faccio un esempio :
La tabella news contiene i seguenti campi :
id - titolo - data - testo - autore
titolo
L'arte in Australia
testo
L'Australia è un paese .... ecc ....
titolo
Un viaggio in Australia
testo
John era appena partito .. ecc ....
Bene - adesso se digito L'arte in Australia mi viene visualizzato il testo L'Australia è un paese .... ecc ....
Se però digito nel Form solo Australia ricevo come risultato :
L'Australia è un paese .... ecc ....
John era appena partito .. ecc ....
Invece vorrei che digitando solo Australia mi venisse visualizzato il messaggio :
Si prega di digitare il titolo esatto dell'articolo ma non ho capito come impostare e dove mettere or die
E digitando Un viaggio in Australia mi venisse visualizzato solo il testo di quest'articolo e non anche quello di altri
Ho provato in molti modi ma niente da fare !
Ad esempio così mi visualizza tutti gli articoli contenuti nel database :
$query = "SELECT id, testo, data FROM news WHERE titolo=".$parola."" . $query;
Quest'altra modifica invece mi cerca il testo uguale alla digitazione :
$query .= "titolo = '%$parola%' OR testo LIKE '%$parola%' OR autore LIKE '%$parola%' OR ";
Questo e il sorgente
[ codice php ]
<?php
$chiave=$_REQUEST['chiave'];
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$keys = explode (",", $chiave);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys))
{ $parola = trim($parola);
if ($parola != "")
$query .= "titolo LIKE '%$parola%' OR testo LIKE '%$parola%' OR autore LIKE '%$parola%' OR ";
}
$query .= " 0";
$query = "SELECT id, testo, data FROM news WHERE " . $query;
$result = mysql_query($query, $db);
if ($query == FALSE)
die ("Questo die e sbagliato ma se lo tolgo non va");
while ($row = mysql_fetch_array($result))
{
echo "<a> .date("",$row['data']) . "  {$row['testo']}</a><br>";
}
mysql_close($db);
foot();
?>
[ / codice php ]
Inoltre vorrei sapere se e possibile dare un effetto di testo al risultato che viene visualizzato
Ringrazio in anticipo per un eventuale risposta che possa essermi di aiuto per risolvere
il problema .
:book:
