Ricerca full text mysq ed estrazione con php

alexgentili

Utente Attivo
15 Lug 2010
39
0
0
Ciao a tutti

devo fare una ricerca all'interno della tabella 'magazzino' myISAM con i campi debitamente formattati a fultext come da procedura.

PHP:
$query = "SELECT *, MATCH(fornitore,marca,modello,colore,prezzo)  AGAINST('sony') AS attinenza FROM magazzino WHERE MATCH(fornitore,marca,modello,colore,prezzo)AGAINST('sony') ORDER BY attinenza DESC ";
//if($testo=$_POST['testo']){$query.="WHERE fornitore LIKE '%$testo%' OR marca LIKE '%$testo%' OR modello LIKE '%$testo%' OR colore LIKE '%$testo%'";}  

$result = mysql_query($query) or die(mysql_error());
$numrows = mysql_num_rows($result);


for($x=0; $x<$numrows; $x++){
$resrow = mysql_fetch_array($result);
$prog_list++;


$id=$resrow['id'];
$id_fornitore=$resrow['id_fornitore'];
$fornitore=$resrow['fornitore'];
$marca=$resrow['marca'];
$modello=$resrow['modello'];
$colore=$resrow['colore'];
$prezzo=$resrow['prezzo'];


echo $marca;

}

Il risultato è sempre nessun record. Molto probabilmente sbalgio un parametro sull'estrazione dei dati tramite ciclo for.. Qualcuno che mi aiuta ?

Grazie.
 
ciao
mysql_fetch_array()
dovrebbe restituirti come indice un valore numerico
se vuoi indicare il nome dei campi devi usare mysql_fetch_assoc()

altrimenti usi come indice un valore numerico
PHP:
$id=$resrow[0];
$id_fornitore=$resrow[1];
$fornitore=$resrow[2];
$marca=$resrow[3];
$modello=$resrow[4];
$colore=$resrow[5];
$prezzo=$resrow[6];
 
Grazie per la risposta, ma non stmapa nulla a video in entrambi i casi.

Credo a questo punto ci sia un problema sulla query anche se non ho nessun errore !
 
hai gia provato ad incollarla direttamente nel SQL di phpmyadmin? li ti da risultati?
al massimo posta la struttura della tabella che provo anchio
 
si ho provato ma nessun risultato.

la tabella :
--
-- Struttura della tabella `magazzino`
--

CREATE TABLE IF NOT EXISTS `magazzino` (
`id` int(11) NOT NULL,
`id_fornitore` int(11) NOT NULL,
`fornitore` varchar(255) NOT NULL,
`marca` varchar(255) NOT NULL,
`modello` varchar(255) NOT NULL,
`colore` varchar(255) NOT NULL,
`prezzo` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `fornitore` (`fornitore`,`marca`,`modello`,`colore`,`prezzo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
Ultima modifica di un moderatore:
ho inserito venti record a random e a me funziona
qry.png
sicuro di aver la parola sony in qualche campo?
 
Si scusa da myadmin funziona anche a me e mi trova le attinenze, rimane il problema di come estrarre id dati e stamparli a vide.
Non riesco ne con for ne con while !
 
ho provato il tuo ciclo for sia con mysql_fetch_array che con mysql_fetch_assoc e funziona in entrabi i casi
PHP:
$query = "SELECT *, MATCH(fornitore,marca,modello,colore,prezzo)  AGAINST('sony') AS attinenza FROM magazzino WHERE MATCH(fornitore,marca,modello,colore,prezzo)AGAINST('sony') ORDER BY attinenza DESC ";

$result = mysql_query($query) or die(mysql_error());
$numrows = mysql_num_rows($result);

for ($x = 0; $x < $numrows; $x++) {
    $resrow = mysql_fetch_array($result);

    $id = $resrow['id'];
    $id_fornitore = $resrow['id_fornitore'];
    $fornitore = $resrow['fornitore'];
    $marca = $resrow['marca'];
    $modello = $resrow['modello'];
    $colore = $resrow['colore'];
    $prezzo = $resrow['prezzo'];

    echo $marca . "<br/>";
}
il file di connessione al database lo includi ?
EDIT
OK :fonzie:
 

Discussioni simili