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

    ricerca righe nel database (da.../a...)

    Salve a tutti,
    finora non ho mai avuto l'esigenza di recuperare righe da db MySql che stessero all'interno di un "range" di valori, mi spiego meglio:

    facciamo un esempio :
    un campo prezzo nel database. Ora se devo cercare una riga con un determinato campo, per esempio il prezzo appunto, faccio una SELECT e ci metto WHERE campo = campo da trovare, giusto?!

    Ma se io volessi cercare tutte le righe che vanno da un prezzo diciamo di 10 ad uno di 100?

    Come posso strutturare la mia SELECT?

  2. #2
    SELECT * FROM tabella WHERE prezzo BETWEEN 10 AND 100

    oppure

    SELECT * FROM tabella WHERE prezzo>10 AND prezzo<100
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    grazie mille provero' e ti faro' sapere.

    Ora ho un altro dubbio pero' di tipo strutturale;
    devo fare una ricerca su db articolata, vale a dire che prevede un certo numero di campi da valutare... cerco di esprimermi meglio:

    allora, ho un form di ricerca che ha, per esempio, cinque campi (fascia di prezzo, regione, tipo prodotto, ect...)

    in base alle opzioni che seleziono ricerco le corrispondenti righe nel db.

    Però, se cerco, ad esempio, solo la regione lasciando in bianco gli altri campi del form, dovrò fare una query che cercherà le righe con la sola valutazione sul campo regione...

    Ora, strutturalmente, come faccio a creare una sorta di "QUERY DINAMICA", vale a dire una query che valuta i campi selezionati e procede di conseguenza...

    in passato l'ho realizzata con degli if then else, ma non credo sia la soluzione più giusta, poichè se le voci di ricerca aumentano... cresce anche il codice da implementare e tutte le combinazioni con le if...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Fa in modo che se uno non scrive/sceglie niente in un campo del form, questo invierà una stringa vuota.

    Ti crei tante variabili quante sono i campi del form, esempio:
    codice:
    $prezzo_min = "*";
    $prezzo_max = "*";
    $regione ="*";
    $tipo = "*";
    ...
    poi tanti if quante sono le variabili:
    codice:
    if($_POST['prezzo_min'] != "")
       $prezzo_min = $_POST['prezzo_min'];
    
    if($_POST['prezzo_max != "")
       $prezzo_max = $_POST['prezzo_max'];
    ...
    A questo punto costruisci la query
    codice:
    SELECT * FROM tabella WHERE prezzo_min=$prezzo_min AND prezzo_max=$prezzo_max AND ...;
    In questo modo, se l'utente ha scritto/selezionato qualcosa, questo viene riportato nella query, altrimenti nella query ci sarà un * che ti permetterà di prendere qualsiasi cosa per il campo non riempito.

  5. #5
    Scusa se riprendo questo thread dopo tanto tempo,
    ma sembra che la risposta data da Alhazred non sia corretta...

    Mi sembra una cosa poi non tanto difficile, al limite, in assenza di un aiuto la costruiro' come sempre fatto con altri if... pero' se qualcuno lo sa... magari risparmio un po' di tempo...

    Grazie mille a tutti e buona domenica
    beta

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.