Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Per esperti...

  1. #1

    Per esperti...

    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!

  2. #2
    Dunque, direi che il thread non è a norma dato che il titolo è giusto un "attimo" generico, e, a parte questo, il codice che hai postato è incomprensibile

    Gentilmente riapri il thread a norma e soprattutto usa i tag per postare il codice colorato ed indentato altrimenti non si capisce nulla
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.