Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di WMbyloom
    Registrato dal
    Nov 2003
    residenza
    World
    Messaggi
    55

    Query con where e valori pieni o vuoti

    Ho bisogno di creare una query...
    ho nel db una serie di campi di una tabella:
    matriale
    movimento
    epoca
    tipologia

    io prendo questi valori da una pagian web tramite modulo e mi arrivano ad una pagian php dove c'è la query, ke dovrà prendere i valori ke gl ipasso trmaite modulo, facendo si ke se un oscegli opzione or esce la seguente query e qui tutto ok...
    ma se sceglie il metodo and
    ho dei problemi perchè alcuni elementi possono essere vuoti e se sono vuoti non mi da i giusti risultati
    coem faccio ad usare un metodo di ricerca adeguato per i 4 campisu indicati anche se 1 o più campi non sono stati riempiti nella pagian del modulo?

    SELECT id, immagine, link, marca, modello FROM orologi WHERE materiale='$val1' AND movimento='$val2' AND epoca='$val3' AND tipologia='$val4'

    grazie spero si esser stato kiaro...
    A Man with New Idea is Consider Mad until the idea get Success

  2. #2
    Fai una cosa così sia per l'OR che per l'AND
    codice:
    if ($opzione == "AND"){
      $where_clause = " WHERE ";
    
      if (isset($campo1))
        $where_clause .= " campo1 LIKE '$campo1' AND ";
      if (isset($campo2))
        $where_clause .= " campo2 LIKE '$campo2' AND ";
      if (isset($campo3))
        $where_clause .= " campo1 LIKE '$campo3' AND ";	
      if (isset($campo4))
        $where_clause .= " campo1 LIKE '$campo4' AND ";
    
      $where_clause .= " 0 = 0"; //per evitare eventuali controlli
    }
    Poi la query la imposti così:
    codice:
    $sql = "SELECT * FROM tabella ".$where_clause;
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    Utente di HTML.it L'avatar di WMbyloom
    Registrato dal
    Nov 2003
    residenza
    World
    Messaggi
    55
    nn mi funziona, mi rifai questa cosa, senza la condizione di controllo dell'and...la ricerca con la select però deve avere l'and, nn è più importante il controllo sull'opzione..coem cambia???

    cmq non mi funziona
    A Man with New Idea is Consider Mad until the idea get Success

  4. #4
    Se mi dici cosa c'è che non funziona si può anche tentare di risolvere, perché detto così non c'ho capito niente :master:
    Io uso lo stesso metodo e mi funziona a meraviglia...
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Utente di HTML.it L'avatar di WMbyloom
    Registrato dal
    Nov 2003
    residenza
    World
    Messaggi
    55
    Io ricevo i seguenti valori: da 4 menu a tendina, e c'è u ncampo completamente bianco, in modo ke un opuò scegliere di selezionare solo alcuni valori e nn tutti...
    esempio ricevo dal modulo con i 4 menu i seguenti valori...

    val1=acciaio
    val2=automatico
    val3=1940
    val4=uomo

    però posso anche ricevere i valori in questo modo:
    val1=acciaio
    val2=automatico
    val3=
    val4=

    cioè con 2 cambi vuoti...
    (meglio che gli passo sempre un valore del tipo 0??? o lascio vuoto)


    in + dal modulo, non ricevo più il valore OPZIONE xkè la ricerca deve avvenire semrpe tramite AND,


    quindi questo codice come diventa?
    codice:
     
    if ($opzione == "AND"){
      $where_clause = " WHERE ";
    echo $opzione."
    ";
      if (isset($val1))
        $where_clause .= " materiale LIKE '$val1' AND ";
      if (isset($val2))
        $where_clause .= " movimento LIKE '$val2' AND ";
      if (isset($val3))
        $where_clause .= " epoca LIKE '$val3' AND ";	
      if (isset($val4))
        $where_clause .= " tipo LIKE '$val4' AND ";
    
      $where_clause .= " 0 = 0"; //per evitare eventuali controlli
    }
    $query_pages = "SELECT * FROM orologi ".$where_clause;
    è giusto..perkè cosi nn mi da nessun risultato..anche se segno un unico campo tipo val1=acciaio
    A Man with New Idea is Consider Mad until the idea get Success

  6. #6
    Diventa semplicemente così, togliendo l'if più esterno che ti controllava l'opzione:

    codice:
    $where_clause = " WHERE ";
    echo $opzione."
    ";
    if (isset($val1))
      $where_clause .= " materiale LIKE '$val1' AND ";
    if (isset($val2))
      $where_clause .= " movimento LIKE '$val2' AND ";
    if (isset($val3))
      $where_clause .= " epoca LIKE '$val3' AND ";	
    if (isset($val4))
      $where_clause .= " tipo LIKE '$val4' AND ";
    
    $where_clause .= " 0 = 0"; //per evitare eventuali controlli
    
    $query_pages = "SELECT * FROM orologi ".$where_clause;
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    Utente di HTML.it L'avatar di WMbyloom
    Registrato dal
    Nov 2003
    residenza
    World
    Messaggi
    55
    sai ke nn mi restituisce nessun valore
    A Man with New Idea is Consider Mad until the idea get Success

  8. #8
    I valori li prendi da un form giusto?il metodo del form è POST o GET?
    Esempi per POST
    codice:
    $where_clause = " WHERE ";
    echo $opzione."
    ";
    if (isset($_POST['val1']))
      $where_clause .= " materiale LIKE '$val1' AND ";
    if (isset($_POST['val2']))
      $where_clause .= " movimento LIKE '$val2' AND ";
    if (isset($_POST['val3']))
      $where_clause .= " epoca LIKE '$val3' AND ";	
    if (isset($_POST['val4']))
      $where_clause .= " tipo LIKE '$val4' AND ";
    
    $where_clause .= " 0 = 0"; //per evitare eventuali controlli
    
    $query_pages = "SELECT * FROM orologi ".$where_clause;
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    Utente di HTML.it L'avatar di WMbyloom
    Registrato dal
    Nov 2003
    residenza
    World
    Messaggi
    55
    allora se io faccio partire la pagina dove in quella pagian do un valore a val1, funziona
    ma se i valor iarrivano dalla pagina del modulo no nfunziona, metodo post..com'è possibile? eppure i valori arrivan oa quella pagian con echo li visualizza
    A Man with New Idea is Consider Mad until the idea get Success

  10. #10
    VVoVe: Cioè, fammi capire, se tu fai un echo di tutte e quattro le variabili te le stampa, ma poi non ti entra nell'if, giusto?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.