Salve a tutti, e complimenti davvero!
So che tra voi c'è gente davvero in gamba e disponibile.
Arrivo al dunque:sto realizzando un piccolissimo motore di ricerca, tutto funziona alla perfezione, però vorrei aggiungere una piccola funzione che non riesco a realizzare...
In pratica dopo la ricerca, ad esempio "casa" escono i risultati ad esempio 1000 e anche in quale categorie sono stati tovati le parole chiave in questo modo:
Risultato della ricerca 1000
Nelle categorie:
-Roma
-Milano
-Bologna
io vorrei ad esempio che uscisse in questo modo...
Risultato della ricerca 1000
Nelle categorie:
-Roma (40 risultati)
-Milano (35 risultati)
-Bologna (25 risultati)
avete qualche idea???Sono 3 giorni che ci provo... ma niente!
1)allora il codice che gestisce i risultati è questo:
if ($query_product != "no") {
$query_limit_product = sprintf("%s LIMIT %d, %d", $query_product, noquote_smart($startRow_product), noquote_smart($maxRows_product));
$product = mysql_query($query_limit_product, $databaseConnect) or die(mysql_error());
$row_product = mysql_fetch_assoc($product);
$all_product = mysql_query($query_product);
$totalRows_product = mysql_num_rows($all_product);
$totalPages_product = ceil($totalRows_product/$maxRows_product)-1;
$queryString_product = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_product") == false &&
stristr($param, "totalRows_product") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_product = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_product = sprintf("%s", $queryString_product);
}
2) Il codice che gestisce la visualizzazione delle categorie dopo la ricerca è questo:
// output search results
if ($indcount == 0) {
$sql = "SELECT prodCategory, ( (1.3 * (MATCH(prodName) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE))) + (0.6 * (MATCH(prodDescription,merchant,prodCategory,prodB rand) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE))) ) AS relevance FROM affiliSt_products1 WHERE ( MATCH(prodName,prodDescription,merchant,prodCatego ry,prodBrand) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE) ) HAVING relevance > 0 ORDER BY prodCategory ASC";
} else {
$sql = "SELECT prodCategory, MATCH (prodName,prodDescription,prodBrand,prodCategory) AGAINST (".quote_smart($pluspieces).") AS relevance FROM affiliSt_products1 WHERE MATCH (prodName,prodDescription,prodBrand,prodCategory) AGAINST (".quote_smart($pluspieces).") HAVING relevance > 0 ORDER BY prodCategory ASC";
}
$getRefineCategory = mysql_query($sql, $databaseConnect) or die(mysql_error());
$refineCategory = mysql_fetch_assoc($getRefineCategory);
$storedCategory = '';
$count = 0;
do {
$refcatresult = ucwords(strtolower($refineCategory['prodCategory']));
if ($storedCategory != $refcatresult && $refcatresult != NULL) {
if (isset($_GET['rshow'])) {
$rshow = '&rshow=all';
} else {
$rshow = '';
}
$box_content->assign("REFLINKDATA",$installDir['value'].'index.php?case=search&ps='.str_replace(" ", "+", strip_tags($_GET['ps'])).'&pscat='.str_replace(" ", "+", $refcatresult).$rshow);
$box_content->assign("REFINE",$refcatresult);
$box_content->parse("prod.refine.li");
if ($count >= 3 && !isset($_GET['rshow'])) {
$box_content->assign("REFLINKDATA",$installDir['value'].'index.php?case=search&ps='.str_replace(" ", "+", strip_tags($_GET['ps'])).'&rshow=all');
$box_content->assign("REFINE",'Altre categorie...');
$box_content->parse("prod.refine.li");
break;
}
$storedCategory = $refcatresult;
} else {
$refcatresult = ucwords(strtolower($refineCategory['prodCategory']));
}
$count++;
} while ($refineCategory = mysql_fetch_assoc($getRefineCategory));
// get keywords
$pieces = explode(" ", strip_tags($_GET['ps']));
$kp = count($pieces);
// reset pieces
$pluspieces = '';
for ($pi=0;$pi<$kp;$pi++) {
$pluspieces .= $pieces[$pi].' ';
}
$pluspieces = rtrim($pluspieces, " ");
// change refine prices inaccordance with selected refine category
$extracondition = '';
if (isset($_GET['pscat'])){
$extracondition .= " AND prodCategory = ".quote_smart($_GET['pscat'])."";
}
// output search results
if ($indcount == 0) {
$sql = "SELECT prodPrice, ( (1.3 * (MATCH(prodName) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE))) + (0.6 * (MATCH(prodDescription,merchant,prodCategory,prodB rand) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE))) ) AS relevance FROM affiliSt_products1 WHERE ( MATCH(prodName,prodDescription,merchant,prodCatego ry,prodBrand) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE) ) $extracondition HAVING relevance > 0 ORDER BY prodPrice DESC LIMIT 0,1";
} else {
$sql = "SELECT prodPrice, MATCH (prodName,prodDescription,prodBrand,prodCategory) AGAINST (".quote_smart($pluspieces).") AS relevance FROM affiliSt_products1 WHERE MATCH (prodName,prodDescription,prodBrand,prodCategory) AGAINST (".quote_smart($pluspieces).") $extracondition HAVING relevance > 0 ORDER BY prodPrice DESC LIMIT 0,1";
}
$getRefinePrice = mysql_query($sql, $databaseConnect) or die(mysql_error());
$refinePrice = mysql_fetch_assoc($getRefinePrice);
$highprice = $refinePrice['prodPrice'];
if ($indcount == 0) {
$sql = "SELECT prodPrice, ( (1.3 * (MATCH(prodName) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE))) + (0.6 * (MATCH(prodDescription,merchant,prodCategory,prodB rand) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE))) ) AS relevance FROM affiliSt_products1 WHERE ( MATCH(prodName,prodDescription,merchant,prodCatego ry,prodBrand) AGAINST (".quote_smart($pluspieces)." IN BOOLEAN MODE) ) $extracondition HAVING relevance > 0 ORDER BY prodPrice ASC LIMIT 0,1";
} else {
$sql = "SELECT prodPrice, MATCH (prodName,prodDescription,prodBrand,prodCategory) AGAINST (".quote_smart($pluspieces).") AS relevance FROM affiliSt_products1 WHERE MATCH (prodName,prodDescription,prodBrand,prodCategory) AGAINST (".quote_smart($pluspieces).") $extracondition HAVING relevance > 0 ORDER BY prodPrice ASC LIMIT 0,1";
}
$getRefineLowPrice = mysql_query($sql, $databaseConnect) or die(mysql_error());
$refineLowPrice = mysql_fetch_assoc($getRefineLowPrice);
$lowprice = $refineLowPrice['prodPrice'];
if (($lowprice + 50.00) < $highprice) {
$divideprice = ($highprice - $lowprice) / 5;
if (isset($_GET['pscat'])) {
$pscatvar = '&pscat='.str_replace(" ", "+", $_GET['pscat']);
} else {
$pscatvar = '';
}
if (isset($_GET['rshow'])) {
$rshow = '&rshow=all';
} else {
$rshow = '';
}
$box_content->assign("PRICEREFLINKDATA",$installDir['value'].'index.php?case=search&ps='.str_replace(" ", "+", strip_tags($_GET['ps'])).$pscatvar.'&pslow='.$lowprice.'&pshigh='.ceil($ lowprice + $divideprice).$rshow);
$box_content->assign("PRICEREFINE",$row_product['prodCurrency'].$lowprice.' - '.$row_product['prodCurrency'].ceil($lowprice + $divideprice));
$box_content->parse("prod.refine.priceli");
$box_content->assign("PRICEREFLINKDATA",$installDir['value'].'index.php?case=search&ps='.str_replace(" ", "+", strip_tags($_GET['ps'])).$pscatvar.'&pslow='.ceil($lowprice + $divideprice).'&pshigh='.ceil($lowprice + ($divideprice * 2)).$rshow);
$box_content->assign("PRICEREFINE",$row_product['prodCurrency'].ceil($lowprice + $divideprice).' - '.$row_product['prodCurrency'].ceil($lowprice + ($divideprice * 2)));
$box_content->parse("prod.refine.priceli");
$box_content->assign("PRICEREFLINKDATA",$installDir['value'].'index.php?case=search&ps='.str_replace(" ", "+", strip_tags($_GET['ps'])).$pscatvar.'&pslow='.ceil($lowprice + ($divideprice * 2)).'&pshigh='.ceil($lowprice + ($divideprice * 3)).$rshow);
$box_content->assign("PRICEREFINE",$row_product['prodCurrency'].ceil($lowprice + ($divideprice * 2)).' - '.$row_product['prodCurrency'].ceil($lowprice + ($divideprice * 3)));
$box_content->parse("prod.refine.priceli");
$box_content->assign("PRICEREFLINKDATA",$installDir['value'].'index.php?case=search&ps='.str_replace(" ", "+", strip_tags($_GET['ps'])).$pscatvar.'&pslow='.ceil($lowprice + ($divideprice * 3)).'&pshigh='.ceil($lowprice + ($divideprice * 4)).$rshow);
$box_content->assign("PRICEREFINE",$row_product['prodCurrency'].ceil($lowprice + ($divideprice * 3)).' - '.$row_product['prodCurrency'].ceil($lowprice + ($divideprice * 4)));
$box_content->parse("prod.refine.priceli");
$box_content->assign("PRICEREFLINKDATA",$installDir['value'].'index.php?case=search&ps='.str_replace(" ", "+", strip_tags($_GET['ps'])).$pscatvar.'&pslow='.ceil($lowprice + ($divideprice * 4)).'&pshigh='.ceil($lowprice + ($divideprice * 5)).$rshow);
$box_content->assign("PRICEREFINE",$row_product['prodCurrency'].ceil($lowprice + ($divideprice * 4)).' - '.$row_product['prodCurrency'].ceil($lowprice + ($divideprice * 5)));
$box_content->parse("prod.refine.priceli");
}
$box_content->parse("prod.refine");
}
COME LI POSSO COMBINARE TUTTI E DUE INSIEME PER OTTENERE QUELLO CHE VORREI REALIZZARE????
GRAZIE MILLE!

