Newsgroup: it.comp.www.php
Titolo: Script per effettuare una ricerca libera nel db. Qualcuno sa come fare?

Ho una casella di ricerca libera.
Il sito č un negozio online di abbigliamento.
La ricerca deve essere effettuata all'interno di una tabella che ha 5
campi:
1)ID
2)Tipo prodotto (es. Camicia - pantaloni, maglietta, etc)
3)Colore (es. blu - verde - giallo, etc..)
4)Taglia (es. 42  48 - 52 - etc.)
5)Descrizione Capo (es. Bel paio di pantaloni sportivi adatti a uomini e
donne)
Lo script dovrebbe funzionare cosě:
Se nella casella di ricerca inserisco: pantaloni donna, lo script deve
controllare in tutti i 5 campi se la parola "pantaloni" č presente in
almeno uno dei 5 campi e dopo fare lo stesso per la parola "donna".
Ipotizziamo che trovi 40 record per la ricerca "pantaloni" e 25 per la
ricerca "donna", adesso deve intersecare i 2 insiemi di risultati e darmi
come risultato quei record che contengono sia la parola "pantaloni" che
quella "maglietta".
Qualcuno saprebbe dirmi come scrivere uno script del genere?
Grazie Dey78
 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 "pantaloni" che quella "maglietta".
IMHO lo puoi fare generando una query che estrai direttamente i record
incriminati.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

Si è esattamente ciò che mi serve. Sai indicarmi dove trovare uno
script del genere. Ho iniziato stasera studiare il php, ma lo script mi
servirebbe subito.  :-)
Anzi ti allego lo script del server su cui ho il mio sito, credoche sia
libero (lo offrono in una pagina del loro sito) perchè non ho capito
se bisogna modificare questo script o farne un altro.
 ciao e grazie
<?php
//'''''''''' inserire il nome del dominio
$DOMAIN='
xxxxxx.com
';
//'''''''''' inserire il nome della lista o delle liste
$LISTS[]='lista1';
$LISTS[]='altra_lista';
//''''''''fine configurazione
$response_template='
<br>
<center>
<div align="center">
<table border="0" cellspacing="1" cellpadding="2" width="570">
<tr>
<td align="center">
%%ACTION%% %%LIST%%@%%DOMAIN%%
</td>
</tr>
<tr>
<td class="response">
Riceverai una mail a breve su &quot;%%ADDRESS%%&quot;. Quello che devi
fare è usare la funzione "Rispondi" del tuo client di posta
ed inviare tale risposta: non è necessario scrivere nulla.
</td>
</tr>
</table>
</div>
</center>
';
?>
<html>
<head>
<title>Iscrizione a mailing-list in php</title>
<style>
body {
background-color:#ffcb8c;
color:white;
}
td { background-color:#ffcb8c; color:red;
font-weight:bold;font-family:verdana;}
td.response { background-color:#ffca000; color:red; font-weight:normal;
font-family:verdana; }
</style>
</head>
</body>
<center><div align="center">
<table border="0" cellspacing="0" cellpadding="0" width="570">
<form method="post">
<tr>
<td align="center">Indirizzo email</td>
<td align="center">Nome Lista / Azione</td>
<td align="left">&nbsp;</td>
</tr>
<tr>
<td align="center"><input type="text" value="<?php echo $_GET['a']; ?>"
name="addy" size="30"></td>
<td align="center"><select name="list"><?php
if ( is_array($LISTS)) {
foreach ( $LISTS as $val ) {
echo '<option value="'.$val.'">'.$val.'@'.$DOMAIN.chr(10);
}
}
?></select><select name="action"><option
value="subscribe">Iscriviti<option value="unsubscribe">Rimuovi
iscrizione</select></td>
<td align="left"><input type="submit" value="GO!"></td>
</tr>
</form>
</table>
</center></div>
<?php
switch ( $_POST['action'] ) {
case 'subscribe':
if ( !empty($_POST['addy']) ) {
if ( mail($list.'-subscribe-'.str_replace('@', '=',
$_POST['addy']).'@'.$DOMAIN ,'', '') ) {
show_tpl($response_template, 'ISCRITTO A: ', $list, $DOMAIN,
$_POST['addy']);
}
}
break;
case 'unsubscribe':
if ( !empty($_POST['addy']) ) {
if ( mail($list.'-unsubscribe-'.str_replace('@', '=',
$_POST['addy']).'@'.$DOMAIN ,'', '') ) {
show_tpl($response_template, 'RIMOSSO DA: ', $list, $DOMAIN,
$_POST['addy']);
}
}
break;
}
function show_tpl($tpl, $action, $list, $domain, $address) {
$tpl=str_replace('%%ACTION%%', $action, $tpl);
$tpl=str_replace('%%LIST%%', $list, $tpl);
$tpl=str_replace('%%DOMAIN%%', $domain, $tpl);
$tpl=str_replace('%%ADDRESS%%', $address, $tpl);
echo $tpl;
}
?>
</body>
</html>

Scusatemi, stasera sono in palla ed ho inserito il mio messaggio qui
anzichè nel mio post, sopra, 
Scusate di nuovo.

 incriminati.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 nel campo 2 o nel campo 3 ci sia la Key="blu"
Da testare.
<?php 
$keywords = array('pantaloni', 'uomo', 'blu');
$fields = array('campo1', 'campo2', 'campo3');
$sql = 'WHERE ';
$join1 = '';
foreach ($keywords as $keyword) {
 
	$sql .= $join1 . '(';
	$join2 = '';
	foreach ($fields as $field) {
		$sql .= $join2 . "(LOCATE('$keyword', $field) <> 0)";
		$join2 = ' OR ';
	}
	$sql .= ')';
	$join1 = ' AND ';
}
print($sql);
?>
-- 
I am what I am, I do what I can


 Da testare.



-- 
questo articolo e` stato inviato via web dal servizio gratuito 
