Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343

    tutte le condizioni possibili col minor codice

    salve ragazzi, ho una form con 5 campi di tipo input(nome,cognome,indirizzo,cap,data).
    questi cinque campi coincidono con 5 campi di una tabella di un database.
    ed a seconda degli input valorizzati rilasciano dei dati.

    il mio problema nasce ora se voglio prevedere tutti i casi dovrei fare un numero indefinito di if ed else if, mi chiedevo se c'è un modo più semplice per prevedere tutti i casi.

    posto un po di codice:

    Codice PHP:
    $null = "";
    if ($cognome == "" && $nome == "" && $indirizzo == ""  && $cap == "" && !$data== "")
            if (!$data== "")
            {
                $query = "SELECT * FROM lettura WHERE data ='$dat'";
                $result = mysql_query($query);
                if (mysql_num_rows($result) > 0) 
        .....................
           
    else if (!$cognome == "" && $nome == "" && $indirizzo == ""  && $cap == "" && $data== "")
            {
            $query = "SELECT * FROM lettura WHERE cognome like '%".$s."%'";
                     ...............
    else if ($cognome == "" && !$nome == "" && $indirizzo == "" && $cap == "" && $data== "")
            {
            $query = "SELECT * FROM lettura WHERE nome like '%".$nome."%'";
            ..........................
            else if ($cognome == "" && $nome == "" && !$indirizzo == "" && $codice == "" && $cap == "" && $data== "")
            {
            $query = "SELECT * FROM lettura WHERE indirizzo like '%".$indirizzo."%'";
            .....................................
    else if ($cognome == "" && $nome == "" && $indirizzo == ""  && !$cap == "" && $data== "")
            {
            $query = "SELECT * FROM lettura WHERE cap like '%".$cap."%'";
                    ......................
    else if (!$cognome == "" && !$nome == "" && !$indirizzo == ""  && !$cap == "" && !$data== "")
            {
            $query 
    ..................................
    else
            {    
                    ?>
                    <td>nessun risultato</td>
                    <td>associato</td>
                    </tr>
                    <?
            
    }
    il problema nasce se ho valorizzato solo 2 campi del form ad esempio nome e cognome, non mi restiuisce nessun risultato, anche se è presente nella tabella del db...giustamente perchè il caso nn è previsto.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Codice PHP:
    $condizione false;
    $where " WHERE ";
    if(
    $nome != "") {
        
    $where .= "nome = '".$nome."' AND ";
        
    $condizione true;
    }
    if(
    $cognome != "") {
        
    $where .= "cognome = '".$cognome."' AND ";
        
    $condizione true;
    }
    if(
    $indirizzo != "") {
        
    $where .= "indirizzo = '".$indirizzo."' AND ";
        
    $condizione true;
    }
    if(
    $cap != "") {
        
    $where .= "cap = '".$cap."' AND ";
        
    $condizione true;
    }
    if(
    $data != "") {
        
    $where .= "data = '".$data."' AND ";
        
    $condizione true;
    }

    if(
    $condizione == true) {
        
    $where substr($where,0,-5);
        
    $query "SELECT * FROM lettura ".$where;


  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343
    ottimo grazie mille!!!

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.