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

    MYSQL Query WHERE dinamica...

    Salve a tutti,
    devo fare una query su database MySql in modo dinamico, nel senso che, la WHERE deve assumere valori ben precisi o tutti i valori possibili...

    ... mi spiego meglio :

    Allora, ho una select box con dei nomi di città ed una opzione, all'interno della select, che mi permette di selezionare tutte le città...

    Quando faccio la query, se l'utente ha selezionato tutte le città, dovrebbe esserci una cosa tipo : WHERE = "ALL" ... (nel senso che deve prendere tutto... trascurando il WHERE in poche parole) ... in caso contrario deve fare una query normale....

    ho provato in questo modo :

    creo una variabile che, nel caso in cui viene selezionata l'opzione "tutte le città" vale = " " (cioè vuoto), altrimenti vale =" WHERE citta = '$_POST['citta']' " ....

    andrei poi a mettere questa variabile nella query da far eseguire...
    Ebbene, questo metodo va anche bene, pero' vale se ho una sola scelta (in questo caso città)...
    ma nel caso abbia più scelte... verrebbe fuori una cosa con molteplici WHERE ... tipo :

    WHERE citta = '$_POST['citta']' WHERE nome = '$_POST['nome']' ... ect... che non è una query sintatticamente valida....

    come risolvo...????
    Grazie a tutti e buona domenica

  2. #2
    WHERE citta = '$_POST[citta]' AND nome = '$_POST[nome]'

    Ti ho rimosso anche gli apici all'interno delle variabili. Se sei all'interno di una stringa non le devi mettere

    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
    ho capito....
    ma il problema non è quello...

    WHERE citta = '$_POST[citta]' AND nome = '$_POST[nome]'
    ok con questa sintassi, ma metti il caso che l'utente non abbia selezionato la città, ma abbia lasciato il campo in bianco... io dovro' pertanto selezionarle tutte.... come diventa la query???

    qualcosa tipo WHERE citta='*' ... non va ....

    grazie mille

  4. #4
    Codice PHP:
    if(isset($_POST['citta']))
    {
       
    $sql .= "WHERE citta = '".$_POST['citta']."'";


  5. #5
    Ragazzi... facciamola più semplice di quanto si possa immaginare...

    Allora, immaginate, due select box, una con i nomi di città ed una opzione per selezionarle tutte, ed un'altra select box con dei valori (tipo1, tipo2, tipo3, tutti i valori)...

    select1select2
    --------------
    milanotipo1
    torinotipo2
    genovatipo3
    roma......
    ....tutti
    tutte

    ed un pulsante che invia il modulo...

    Allora, devo fare una query select con un where che deve prendere i valori portati dalle select box e nel caso siano impostate su (tutte) o (tutti) ... oppure esclusivamente ... entrambi o uno dei due ... deve prendere tutti i valori di quel determinato campo...

    Per questo dico che bisogna costruire una select dinamica... altrimenti dovrei valutare con degli if than else... tutte le combinazioni e costruire tante SELECT WHERE quante esse sono...

    ... Ma questo non credo sia il giusto passaggio, poiche' sei i campi di ricerca aumentano???

    Spero di avervi chiarito un po' le idee,
    Grazie per il vostro aiuto

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.