Salve ragazzi ho questo codice che utilizzo per fare una ricerca con parole multiple su varie tabelle del database dopo averle filtrate mediante dei criteri
purtroppo mi da i seguenti errori:
Warning: Cannot use a scalar value as an array .... on line ....
(line di riferimento - $query[] = "(fname LIKE '%$chiave%'...)
Warning: implode(): Bad arguments. in ... on line ...
(line di riferimento - $query_string = " ...)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... on line ...
(line riferimento - while ($row = mysql_fetch_array ($dati)){ ...)
Qualcuno ha la gentilezza di darmi una mano?
ECCO IL CODICE IN QUESTIONE:
<?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]
<?
if (isset($chiave)){
$parole= explode(" ",$chiave); // Explode the keywordstring, and create an array
$query_base = array(); // Define the querybase as an empty array
foreach($parole as $chiave) // for each value in the keywords array
{
if($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_string = 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_string;
$dati=mysql_db_query("$sql_db",$query_string);
while ($row = mysql_fetch_array ($dati)){
$verifica=$row["books"];
echo $row["fname"]." ".$row["lname"]."
";
echo "interessi: ".$row["interests"]."
";
echo "descrizione: ".$row["about"]."
";
echo "posizioni ".$row["p_positions"]."
";
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>");
}
mysql_free_result ($dati);
}else{
echo "Elenco Corrispondenze";
}
mysql_free_result ($query);
mysql_close ($link);
?>