Newsgroup: it.comp.www.php
Titolo: Piccolo motore

Ciao 
Questo è il mio script che dovrebbe farmi quanto segue. Ho un menu a
tendina da cui selezione una voce che mi fa una ricerca e mi da il
risultato.
Pagina search.php 
<? 
include("top_foot.inc.php"); 
include("connect.inc.php"); 
top(); 
?> 
<form method=post action=result.php> 
<SELECT NAME="chiave"> 
<OPTION VALUE="Mamma">Mamma</OPTION> 
<OPTION VALUE="Beppe">Beppe</OPTION> 
<OPTION VALUE="Pio">Pio</OPTION> 
<OPTION VALUE="Pavullo">Pavullo</OPTION> 
<OPTION VALUE="Sassuolo">Sassuolo</OPTION> 
<OPTION VALUE="Vignola">Vignola</OPTION> 
</SELECT> 
<input type=submit value=cerca><br> 
</form> 
<? 
foot(); 
?> 
Pagina result.php 
<? 
include("top_foot.inc.php"); 
include("connect.inc.php"); 
top(); 
$db = mysql_connect($db_host, $db_user, $db_password); 
if ($db == FALSE) 
die ("Errore nella connessione. Verificare i parametri nel file
connect.inc.php");
mysql_select_db($db_name, $db) 
or die ("Errore nella selezione del database. Verificare i parametri
nel file connect.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, titolo, data FROM news WHERE " . $query; 
$result = mysql_query($query, $db); 
while ($row = mysql_fetch_array($result)) 
{ echo "<a href=\"view.php?id=$row[id]\">" . date("j/n/y", $row[data])
. " - $row[titolo]</a><br>"; }
foot() 
?> 
Il mio problema ora è questo . premesso che questo funziona benissimo
se volessi nel form di riceca invece che usare un menu a tendina ne
volessi 2 che facessero un confronto incrociato come cambierebbe il
mio script ?
Grazie a tutti

 mio script ?
Funziona si, ma tu capisci il 'tuo' script?
Aggiungi queste righe a quello gia esistente nei punti giusti ([A] e [B])...
<SELECT NAME="chiave2">
<OPTION VALUE="Mamma">Mamma</OPTION>
<OPTION VALUE="Beppe">Beppe</OPTION>
<OPTION VALUE="Pio">Pio</OPTION>
 <OPTION VALUE="Pavullo">Pavullo</OPTION>
 <OPTION VALUE="Sassuolo">Sassuolo</OPTION>
 <OPTION VALUE="Vignola">Vignola</OPTION>
 </SELECT>
il primo $query = ""; sostitusci con $query="(";
$query.=")AND (";
$keys = explode (",", $chiave2);
 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)";
sostituisci:
    $result = mysql_query($query, $db);
con:
    $result = mysql_query($query, $db) or die("Errore query '$query': ".
mysql_query());
per non impazzire con un errore (ma da dove prendete sempre questi cattivi
esempi di programmazione?!?).
explode non serve in realta' nel tuo script visto che passi valori fissi e
per una ricerca manuale non mi sembra adeguata (meglio un preg_split() ma
lasciamo perdere per ora).
Prova, ma non garantisco...

 Prova, ma non garantisco...
Prima di tutto grazie per l'aiuto. L'esempio l'ho preso da un testo
perchè come ogni principiante che si rispetti da qualche parte dovevo
pur cominciare.
Alla domanda se capisco lo script preferirei non rispondere. 
Ciao e grazie ancora

 Alla domanda se capisco lo script preferirei non rispondere.
LOL, immaginavo (importante che prima poi lo capisci). Cmq. se hai delle
domande, basta che copi incolli qualche pezzo che non capisci, qualcuno lo
spieghera' volentieri.
;-)