Ricerca multipla con risultati duplicati
Ragazzi ho il seguente problema:
Quando eseguo la ricerca con una parola: tutto ok
Quando eseguo la ricerca con più parole mi duplica i risultati per ogni parola cercata.
sapreste ancora una volta darmi una mano?
GRAZIE
ECCO IL CODICE...
<?php
include("data.php");
include("paging.func.php");
$link=mysql_connect("$sql_host","$sql_user","$sql_pass");
$tutto = "SELECT A.*, B.* FROM members AS A INNER JOIN profiles AS B ON A.mem_id = B.mem_id";
$query = mysql_db_query ($sql_db,$tutto)
or die ("Non riesco ad eseguire la richiesta $tutto");
$righe = mysql_num_rows ($query);
if ($settore == "10"){ $settorevar = ''; }
else{ $settorevar = "and B.industry = '$settore'"; }
if ($nazione == "all"){ $nazionevar = ''; }
else{ $nazionevar = "and A.country = '$nazione'"; }
?>
contenuti <? echo $righe ?> contatti</b></td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center">
<form method=POST action=<? echo $PATH_INFO ?>>
<input type="text" name="chiave" size="20">
<select name="nazione" onChange="listCategory.populate();" width="150" style="width: 150px" align="center">
<option value="all" >ovunque</option>
<option value="italy">italia</option>
<option value="usa">usa</option>
<option value="france">france</option>
</select>
<select name="settore" size="5" onChange="listmessage_categoryId.populate();" width="150" style="width: 150px" align="center">
<option SELECTED value="10" >qualunque</option>
<option value="8">Telecomunicazioni</option>
<option value="80">Marketing ed Advertising</option>
<option value="13">Pratica Medica</option>
</select>
</td>
</tr><tr>
<td width="100%" colspan="2">
<p align="center">
<input type="submit" value="Cerca Corrispondenze">
</td></form></tr></table>
</td><td width="74%">
<blockquote>
<p align="left"><b><br>
<?
if (isset($chiave)){
$parole= explode(" ",$chiave); // Explode the keywordstring, and create an array
$query = array(); // Define the querybase as an empty array
foreach($parole as $chiave) // for each value in the keywords array
{
if(!empty($chiave)) // check against empty values
{ // Now create an individual array value for each keyword
$query[] = "(fname LIKE '%$chiave%'
or lname LIKE '%$chiave%'
or interests LIKE '%$chiave%'
or books LIKE '%$chiave%'
or about LIKE '%$chiave%'
or skills LIKE '%$chiave%'
or p_positions LIKE '%$chiave%'
)" ;
}
$query_str = implode(" and ", $query); // merge all array elements, use AND between individual sections
// Now finish the querystring with required sql commands
$query_string = "
SELECT A.*, B.*
FROM members AS A
INNER JOIN profiles AS B
ON A.mem_id = B.mem_id $nazionevar $settorevar
WHERE ".$query_str;
$dati=mysql_db_query("$sql_db",$query_string);
while ($row = mysql_fetch_array ($dati)){
$verifica=$row["books"];
echo $row["fname"]." ".$row["lname"]."<br>";
echo "interessi: ".$row["interests"]."<br>";
echo "descrizione: ".$row["about"]."<br>";
echo "posizioni ".$row["p_positions"]."<br>";
echo "Attitudini: ".$row["skills"]."<hr size=1 color=#000000>";
echo "<a href=\"index.php?mode=people_card&p_id=".$row["mem_id"]."\">Guarda il profilo</a>"."<hr size=1 color=#000000>";
}
}
if (!$verifica){
print ("Nessuna corrispondenza
per la parola <font color=#000080>$chiave</font>");
}
}else{
echo "Elenco Corrispondenze";
}
mysql_close ($link);
?>
Ragazzi ho il seguente problema:
Quando eseguo la ricerca con una parola: tutto ok
Quando eseguo la ricerca con più parole mi duplica i risultati per ogni parola cercata.
sapreste ancora una volta darmi una mano?
GRAZIE
ECCO IL CODICE...
<?php
include("data.php");
include("paging.func.php");
$link=mysql_connect("$sql_host","$sql_user","$sql_pass");
$tutto = "SELECT A.*, B.* FROM members AS A INNER JOIN profiles AS B ON A.mem_id = B.mem_id";
$query = mysql_db_query ($sql_db,$tutto)
or die ("Non riesco ad eseguire la richiesta $tutto");
$righe = mysql_num_rows ($query);
if ($settore == "10"){ $settorevar = ''; }
else{ $settorevar = "and B.industry = '$settore'"; }
if ($nazione == "all"){ $nazionevar = ''; }
else{ $nazionevar = "and A.country = '$nazione'"; }
?>
contenuti <? echo $righe ?> contatti</b></td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center">
<form method=POST action=<? echo $PATH_INFO ?>>
<input type="text" name="chiave" size="20">
<select name="nazione" onChange="listCategory.populate();" width="150" style="width: 150px" align="center">
<option value="all" >ovunque</option>
<option value="italy">italia</option>
<option value="usa">usa</option>
<option value="france">france</option>
</select>
<select name="settore" size="5" onChange="listmessage_categoryId.populate();" width="150" style="width: 150px" align="center">
<option SELECTED value="10" >qualunque</option>
<option value="8">Telecomunicazioni</option>
<option value="80">Marketing ed Advertising</option>
<option value="13">Pratica Medica</option>
</select>
</td>
</tr><tr>
<td width="100%" colspan="2">
<p align="center">
<input type="submit" value="Cerca Corrispondenze">
</td></form></tr></table>
</td><td width="74%">
<blockquote>
<p align="left"><b><br>
<?
if (isset($chiave)){
$parole= explode(" ",$chiave); // Explode the keywordstring, and create an array
$query = array(); // Define the querybase as an empty array
foreach($parole as $chiave) // for each value in the keywords array
{
if(!empty($chiave)) // check against empty values
{ // Now create an individual array value for each keyword
$query[] = "(fname LIKE '%$chiave%'
or lname LIKE '%$chiave%'
or interests LIKE '%$chiave%'
or books LIKE '%$chiave%'
or about LIKE '%$chiave%'
or skills LIKE '%$chiave%'
or p_positions LIKE '%$chiave%'
)" ;
}
$query_str = implode(" and ", $query); // merge all array elements, use AND between individual sections
// Now finish the querystring with required sql commands
$query_string = "
SELECT A.*, B.*
FROM members AS A
INNER JOIN profiles AS B
ON A.mem_id = B.mem_id $nazionevar $settorevar
WHERE ".$query_str;
$dati=mysql_db_query("$sql_db",$query_string);
while ($row = mysql_fetch_array ($dati)){
$verifica=$row["books"];
echo $row["fname"]." ".$row["lname"]."<br>";
echo "interessi: ".$row["interests"]."<br>";
echo "descrizione: ".$row["about"]."<br>";
echo "posizioni ".$row["p_positions"]."<br>";
echo "Attitudini: ".$row["skills"]."<hr size=1 color=#000000>";
echo "<a href=\"index.php?mode=people_card&p_id=".$row["mem_id"]."\">Guarda il profilo</a>"."<hr size=1 color=#000000>";
}
}
if (!$verifica){
print ("Nessuna corrispondenza
per la parola <font color=#000080>$chiave</font>");
}
}else{
echo "Elenco Corrispondenze";
}
mysql_close ($link);
?>