Problema motore di ricerca in PHP-Mysql

Salve a tutti...ho questo piccolo problemino...

ho costruito un motore di ricerca che si basa su un db mysql e tramite script php restituisce i risultati della ricerca ad un filmato flash...

va tutto bene tranne che mi restituisce anche i record dove la parola chiave non c'...

VI PREGO AIUTATEMI SONO DISPERATISSIMO!!!

di seguito lo script php:

<?php

// configurazione

$word =$_POST['word'];

$db_host = "localhost";

$db_user = "root";

$db_password = "";

$db_name = "prodotti";

// connessione

$db = mysql_connect($db_host, $db_user, $db_password) or die("non riesco a connettermi");

$db_sel = mysql_select_db($db_name) or die("non riesco selezionare il database");

// formattazione query

$select = "SELECT * FROM articoli WHERE titolo like '%$word%'";

// esecuzione query

$result = mysql_query($select);

$rows = mysql_num_rows($result);

// stampa risultati

while($fetch = mysql_fetch_array($result)){

$id = $fetch["id"];

$titolo = $fetch["titolo"];

$descrizione = $fetch["descrizione"];

$prezzo = $fetch["prezzo"];

print("Total=$rows&Oggetto$id=$titolo|$descrizione|$prezzo&");

}

?>

inviato 10 anni fa
totoiv
X 0 X

La SELECT che lanci corretta, controlla solo che il valore di $word sia quello che yi aspetti.

Se $word una stringa vuota e la query diventa:

SELECT * FROM articoli WHERE titolo like '%%'

ed ovviamente restituisce tutte le righe della tabella.

:bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

La SELECT che lanci corretta, controlla solo che il valore di $word sia quello che yi aspetti.

Se $word una stringa vuota e la query diventa:

SELECT * FROM articoli WHERE titolo like '%%'

ed ovviamente restituisce tutte le righe della tabella.

:bye:

Hai colto nel segno... La parola da ricercare non arrivava allo script e quindi mi restituiva tutti i record :-)

Ho sistemato la situazione e adesso la cosa funziona a singhiozzo. Ti spiego:

in alcuni casi la ricerca mi d i risultati giusti, ma in altri non mi d i risultati (ovviamente io so ke i record esistono) ma al posto dei risultati mi da un punto "."

Ti prego aiutami di nuovo.

risposto 10 anni fa
totoiv
X 0 X

Come ti ho detto la query corretta, quindi non ho idea su cosa possa causare il problema. Ti consiglio di provare le query via command line o phpMyAdmin o altro gestore di MySQL in modo da essere sicuro che non si tratta di un problema di SQL.

Quali sono le parole che non danno risultato?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Come ti ho detto la query corretta, quindi non ho idea su cosa possa causare il problema. Ti consiglio di provare le query via command line o phpMyAdmin o altro gestore di MySQL in modo da essere sicuro che non si tratta di un problema di SQL.

Quali sono le parole che non danno risultato?

Allora, dopo il tuo primo consiglio sono andato a controllarmi bene il fla del filmato flash dal quale parte la parola chiave della ricerca e mi sono accorto (come tu avevi intuito) che allo script php arrivava una stringa vuota. Ho modificato il fla e adesso le cose vanno meglio...per succede quello che ho spiegato nel secondo post. A questo punto suppongo nn sia un problema di query. Ma un problema di come i dati arrivano al filmato flash. Devo ad esempio cercare la parola mazda, nel db ci sono due record che hanno tale parola nel campo titolo, in uno c' mazda3 e nell'altro mazda6. Mazda3 mi viene restituito mentre al posto di mazda6 mi viene restituito un punto. La parola porsche me la d perfettamente, mentre al posto di landrover mi d un punto.

Cosa pu essere??? Te ne intendi di actionscript??? Magari ti posto il codice responsabile della comunicazione con lo script php.

AIUUUUUUUUUUUUUTOOOOOOOOOOOOOOOO.....

risposto 10 anni fa
totoiv
X 0 X

mi dispiace ma di actionscript non ne so nulla :dunno:

Ti consiglio di procedere separatamete nella realizzazione dello script php e actionscript.

Fai in modo che lo script php sia in grado di restituire correttamente i risultati. Inserisci a mano in $word le parole che stai cercando e verifica che la print finale stampi correttamente tutti i risultati.

Per testare l'actionscript realizza uno script php che "staticamente" restituisce dei risultati, gli stessi che hai ottenuto nei test dello script PHP, e verifica che vengano correttamente caricati e mostrati.

:bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda