Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Query con intervallo e non singolo valore?

    ciao a tutti ho un form che mi passa le voci selezionate in una pagina di ricerca. Il problema è come impostare la query là dove il valore on è singolo, ma un intervallo: esempio
    la pagina del form mi passa il segunte select
    Codice PHP:
    <select name="model_nascita">
              <
    option value="" selected>Indifferente</option>
              <
    option value="1960|1970">1960/1970</option>
              <
    option value="1971|1975">1971/1975</option>
              <
    option value="1976|1980">1976/1980</option>
              <
    option value="1981|2000">Da 1981 in poi</option>
    </
    select
    che operatori devo usare nella query
    come se fosse un if: nella query come si fa?
    if(model_nascita>=160 && model_nascita<=170

    Codice PHP:
    $query "SELECT * FROM model " .
             
    "WHERE model_nascita ?<=>? '".$_GET['model_nascita']."'"//CHE OPERATORE DEVO USARE PER AVERE TUTTI I RECORD DELL'INTERVALLO? 

  2. #2
    where model_nascita LIKE "$_GET[model_nascita]"
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  3. #3
    grazie per la risposta, ma non funziona
    Nel form passo l'intervallo "1960|1970"
    <option value="1960|1970">1960/1970</option>

    ma nel data basi il campo model_nascita contiene numeri interi (1960, 1961, 1963....1970)

    probabilmente c'e qualcosa da modificare nella query perchè così:
    Codice PHP:
    "WHERE model_nascita LIKE  '".$_GET['model_nascita']."'"
    non mi restituisce nessun risultato.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    forse dico una caxxata, ma non puoi splittare $_GET['model_nascita'] in $basso e $alto e fare qualcosa del genere

    codice:
    $query = "SELECT * FROM model WHERE model_nascita >= '$basso' AND model_nascita <= '$alto'";
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Devi prendere il tuo valore model_nascita e ricavare un array dei valori:

    codice:
    $estremi=explode("/",$model_nascita);
    dopodichè la query diventa:

    codice:
    $query="SELECT * FROM model
    	WHERE model_nascita BETWEEN ".$estremi[0]." AND ".$estremi[1];
    ora ti dovrebbe restituire i valori compresi nell'intervallo.

  6. #6
    la strada del BETWEEN penso sarebbe quella giusta, ma così com'è non funzione perchè la mia situazione è un pò + complessa:
    1 ho una pagina del form che manda tante voci alla pagina che esegue la query.
    2 nella pagina della query prima di tutto memorizzo in un array $dati[] tutte le voci "non vuote passate"
    Codice PHP:
    if(isset($_GET['model_nascita']) && ($_GET['model_nascita']) != "" ) { $dati[] = $_GET['model_nascita']; }
    /*o come dici tu*/$dati[] = explode("|",$_GET['model_nascita']); 
    3 poi passo i vlori di $dati[] in $parola_ricerca per fare il ciclo della query
    Codice PHP:
    foreach($dati as $parola_ricerca){ 
    $query "SELECT * FROM model " .
            
    "WHERE model_nascita = '$parola_ricerca' " //QUI CI ANDREBBE IL BETWEEN MA NON FUNZIONA SE METTO "WHERE model_nascita BETWEEN '$parola_ricerca' AND '$parola_ricerca' "
           
    "OR model_nazionalita = '$parola_ricerca' " .
            
    "OR eccetera = '$parola_ricerca' " ;

    La strada del BETWEEN è giusta ma ci sarebbe da variare qualcosa in uno dei 2 array:$dati o $parola_ricerca. Che si può fare?

  7. #7
    up

  8. #8
    up

  9. #9
    se ho capito bene hai + di una select con intervalli quindi fai un ciclo che ti genera la query giusta e poi la esegui

  10. #10
    Da quel che ho capito, crei un array con tutti i parametri ricevuti via POST che si chiama $dati.
    Devi utilizzare un altro array per contenere i dati restituiti dall'explode, chiama per esempio $limiti.

    Dopodichè nella query utilizzi il BETWEEN con parametri i due valori di $limiti, che sono indipendenti da $dati.

    Non capisco perchè tu debba fare un ciclo foreach per l'array $dati.....

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