Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - URGENTE !  Database e ricerche mirate
Forum - PHP - URGENTE ! Database e ricerche mirate

Avatar
xfiles (Normal User)
Rookie


Messaggi: 22
Iscritto: 19/09/2008

Segnala al moderatore
Postato alle 2:56
Lunedì, 23/03/2009
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 .


PM Quote
Avatar
xfiles (Normal User)
Rookie


Messaggi: 22
Iscritto: 19/09/2008

Segnala al moderatore
Postato alle 4:02
Martedì, 24/03/2009
Il problema della ricerca mirata è stato risolto !!

Un amico mi ha indicato la soluzione bastava sostituire i LIKE con =

Adesso rimane il problema secondario , ossia quello relativo all'effetto di testo ad esempio stile macchina da scrivere ecc.... da mescolare al php

Gli effetti che ho a disposizione sono in javascript .

Saluti

PM Quote
Avatar
queen_live78 (Normal User)
Newbie


Messaggi: 10
Iscritto: 12/10/2006

Segnala al moderatore
Postato alle 21:50
Mercoledì, 22/04/2009
Infatti !!!!!! stavo leggendo il tuo post e stavo per scrivere la risposta ! ma ho visto che gia avevi risolto ! ben cosi'

PM Quote