Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101

    [PHP+Mysql] intervallo di valori e query

    Ciao a tutti,
    spero mi diate una mano a risolvere questo problema:

    ho una select "Km" di un form che contiene intervalli di valori tipo 1000-5000, 5000-10000, etc.

    quando interrogo il DB chiedo dei valori compresi entro l'intervallo selezionato dalla select e per far questo ho fatto l'explode:
    codice:
    $Km = $_GET[Km];
    $Km = explode("-",$_GET[Km]);
    $Km[0];
    $Km[1];
    e nella query ho messo questo:
    codice:
    "SELECT * FROM tabella WHERE pippo LIKE '%$_GET[pippo]%'
    AND (Km >= ($Km[0]) AND Km <= ($Km[1])) 
    AND etc. LIKE '%$_GET[etc.]%'
    funge perfettamente (se cmq riscontrate errori di sintassi ditemi),
    il mio problema e' che non so' come fare a ricreare per "Km" le condizioni di LIKE come per gli altri campi
    Premetto che nel DB ci sono record il cui campo Km e' vuoto e quindi
    non posso creare nella select intervalli del tipo 0-1000000000 per comprenderli tutti
    non posso neanche attribuire "0" ai campi vuoti in quanto mi indica "KM ZERO"
    riassumendo, tutto il problema sta' nel campo vuoto, in che modo farlo gestire dalla query
    Un grazie anticipato.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101
    UP!

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: [PHP+Mysql] intervallo di valori e query

    Originariamente inviato da francois
    il mio problema e' che non so' come fare a ricreare per "Km" le condizioni di LIKE come per gli altri campi
    ?????????

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101
    ?????????
    WHERE mio_campo LIKE %mia_variabile%
    se l'utente non fa una selezione specifica deve mostrarmi tutti i risultati, compresi i campi vuoti,
    essendo la variabile un po' articolata
    codice:
    (Km >= ($Km[0]) AND Km <= ($Km[1]))
    non so' sintatticamente come impostare appunto il LIKE.

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Se vuoi che ti mostri tutti i risultati, è sufficiente NON METTERE il test. Che ci vuole?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101
    scusa luca200 ma non ne vengo a capo.

    se nella select ho il valore 1000-2000
    mi trova tutti i record che rientrano in quell'intervallo e qui ci siamo;
    se li voglio ricavare tutti che valore metto nella select?

  7. #7
    Originariamente inviato da francois
    scusa luca200 ma non ne vengo a capo.

    se nella select ho il valore 1000-2000
    mi trova tutti i record che rientrano in quell'intervallo e qui ci siamo;
    se li voglio ricavare tutti che valore metto nella select?
    come ti ha detto Luca200 ... Non mettere alcuna condizione....

    "SELECT * FROM tabella WHERE pippo LIKE '%$_GET[pippo]%'";


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101
    Sicuramente mi sono espresso male nella mia richiesta iniziale, ci riprovo:
    il campo in questione e' una select con queste opzioni:
    da 1000 a 5000, value="1000-5000"
    da 5000 a 10000, value="5000-10000"
    TUTTI, value="qui non so' cosa mettere"

    la query:
    codice:
    WHERE(Km >= ($Km[0]) AND Km <= ($Km[1]))
    mi trova i valori dell'intervallo scelto nella select
    ma non so' come faccio a farmi restituire tutti i record quando viene scelto "TUTTI"

  9. #9
    codice:
    if($_GET['Km'] == "TUTTI") {
    $query="SELECT * FROM tabella WHERE pippo LIKE '%$_GET[pippo]%'";
    } else {
    "SELECT * FROM tabella WHERE pippo LIKE '%$_GET[pippo]%'
    AND (Km >= ($Km[0]) AND Km <= ($Km[1])";
    }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101
    OK perfect,
    grazie mille piero.mac
    ed un grazie anche a tutti gli altri
    alla prossima ragazzi e buona domenica.

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.