Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82

    query con valori compresi in un range

    Ciao ragazzi,

    devo recuperare dei records secondo alcuni criteri impostati in un form di ricerca:

    Fra questi criteri c'è quello di recuperare tutti i records con un campo compreso in un range di due valori.

    Ho usato il BETWEEN in questo modo:

    Codice PHP:
    $tipo $_GET['tipo'];
    $regione $_GET['regione'];
    $provincia $_GET['provincia'];
    $comune $_GET['comune'];
    $prezzomin $_GET['prezzomin'];
    $prezzomax $_GET['prezzomax'];
    $mq $_GET['mq'];
    $query="SELECT * FROM residenziali WHERE 1 "
    if( 
    $tipo <> "non specificato" $query.="AND tipo LIKE '%$tipo%'"
    if( 
    $regione <> "non specificato" $query.="AND regione LIKE '%$regione%'"
    if( 
    $provincia <> "non specificato" $query.="AND provincia LIKE '%$provincia%'"
    if( 
    $comune <> "non specificato" $query.="AND comune LIKE '%$comune%'"
    if( 
    $prezzomin <> "" $query.="AND prezzo BETWEEN '%$prezzomin%' AND '%$prezzomax%'"
    if( 
    $mq <> "" $query.="AND mq LIKE '%$mq%'"
    ma non funziona!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    cioè nella form ho due campi prezzomin e prezzomax e io voglio visualizzare tutte le righe con il prezzo compreso fra prezzomin e prezzomax.

    La sintassi mi sembra giusta ma non va

  3. #3
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    query.="AND prezzo BETWEEN $prezzomin AND $prezzomax";

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    Mi dà quest'errore:

    mysql_num_rows(): supplied argument is not a valid MySQL result resource

    in corrispondenza di questa riga

    Codice PHP:
     $righe mysql_num_rows(mysql_query($query)); 

  5. #5
    [supersaibal]Originariamente inviato da luchett
    Codice PHP:
     $righe mysql_num_rows(mysql_query($query)); 
    [/supersaibal]
    se scrivi così la query sarà ripetuta ad ogni ciclo che utilizzerai per scandire i risultati.
    scrivi così:

    Codice PHP:
    $result=mysql_query($query);
    $righe mysql_num_rows($result); 

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    uguale stesso errore.

    Vi faccio presente che questa riga sta dentro una funzione che fà la paginazione dei risultati (quella del mitico guidoz), e che includo nello script.

    Non capisco perchè non va!


  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    Ho modificato la query del mio script in quel senso e ora mi dà questo errore.

    Prima che modificassi quella riga di query funzionava.

    questa è la funzione di guidoz per intero:

    Codice PHP:
    <?php

    /*****************************************\
    *                                         *
    *   made by }gu|do[z]{®© - [url]www.guidoz.it[/url]  *
    *    supporto: [url]http://forum.guidoz.it/[/url]    *
    *                                         *
    \*****************************************/


    function paging($query,$x_pag=10,$num_links=5)
    {
     
    //conteggio i record presenti
     
    $righe mysql_num_rows(mysql_query($query));
     if (
    $righe == 0){ return false; }

     
    //calcolo il numero di pagine necessarie per visualizzare i dati
     
    $numpages ceil($righe/$x_pag);
     
     
    //ottengo il numero di pagina, se manca lo imposto ad 1
     
    $pag = isset($_GET['pag'])? $_GET['pag'] : 1;
     
     
    //imposto il primo estremo del limit
     
    $da = ($pag-1) * $x_pag;
     
     
    //appendo il limit alla query originaria
     
    $query .= " LIMIT $da,$x_pag";
     
     
    //gesisco la propagazione della query string
     
    $querystring '';
        foreach(
    $_GET as $k => $v)
          {
           if (
    $k != 'pag')
             {
               
    $querystring .= "&".$k."=".$v;
             }
          }
     
     
    //inizializzo una stringa vuota in cui appenderò l'output del menu'
     
    $menu '';
     
    //serie di condizionali in cascata per costruire il menu' 
    if($numpages <= $num_links
      {
        for (
    $pagina 1$pagina <= $numpages$pagina++)
          {
            if (
    $pagina == $pag)
              
    $menu .= "<span class=\"pag_selected\"> $pagina </span> ";
            else
              
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
          }
      }

    //se la pag corrente è tra le prime $num_links/2 --> stampo i primi $nun_links link
    else if($pag <= ceil($num_links/2))
      {
        for (
    $pagina=1$pagina<=$num_links$pagina++)
          {
            if (
    $pagina == $pag)
              
    $menu .= "<span class=\"pag_selected\"> $pagina </span> ";
            else
              
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
          }
        
    $menu .= "<a class=\"pag_link\" href=\"?pag={$numpages}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
      }

    //se la pag corrente è tra le ultime $num_links/2 --> stampo gli ultimi $nun_links link
    else if($pag > ($numpages-ceil($num_links/2)))
      {
        
    $menu .= "<a class=\"pag_link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
        for (
    $pagina=$numpages-$num_links+1$pagina<=$numpages$pagina++)
          {
            if (
    $pagina == $pag)
              
    $menu .= "<span class=\"pag_selected\"> $pagina </span> ";
            else
              
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
          }
      }

    //Altrimenti la pagina corrente è una dell centrali --> stampo i $nun_links/2 link prima ed $nun_links/2 link dopo
    else
      {
        
    $menu .= "<a class=\"pag_link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
        for (
    $pagina $pag-ceil($num_links/2-1); $pagina <= $pag+ceil($num_links/2-1); $pagina++)
          {
            if (
    $pagina == $pag)
              
    $menu .= "<span class=\"pag_selected\"> $pagina </span> ";
            else
              
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
          }
        
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
      }

     
    //restituisco il risultato della query, e l'output del menu'
     
    return array(mysql_query($query),$menu);
    }


    ###################################################################
    #                        esempio d'uso                            #
    ###################################################################
    /*
    mysql_connect('localhost','','');
    mysql_select_db('databas');
     
    $res = paging('SELECT * FROM boh');

    if (!$res[0]) { echo "non ci sono dati";}
    else
     {
        while($dati = mysql_fetch_array($res[0])) 
          {
           echo "
    ".$dati['campo'];
          }
        }
        echo "
    ".$res[1];

    */

    ?>
    Aiutoooooo

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    up

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 © 2024 vBulletin Solutions, Inc. All rights reserved.