Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: IF con 3 condizioni

  1. #1

    IF con 3 condizioni

    Buongiorno,
    sto sviluppando uno script di controllo
    Codice PHP:
    if(($produttore_control == $produttore_db) && ($numero_control == $numero_db) && ($data_control == $data_db))
    {
    // vero
    echo "vero";
    }else{
    //falso
    echo "falso";

    Quando vado a provarlo mi stampa:

    falso
    falso
    falso
    vero

    Perchè?

  2. #2

    Re: IF con 3 condizioni

    Originariamente inviato da SorGh3Tt4
    Buongiorno,
    sto sviluppando uno script di controllo
    Codice PHP:
    if(($produttore_control == $produttore_db) && ($numero_control == $numero_db) && ($data_control == $data_db))
    {
    // vero
    echo "vero";
    }else{
    //falso
    echo "falso";

    Quando vado a provarlo mi stampa:

    falso
    falso
    falso
    vero

    Perchè?
    Evidentemente perchè la condizione dell'if è, nell'ordine, falsa, falsa, falsa e vera!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    42
    Ma prima c'è qualche while o for o foreach?

  4. #4

    Re: Re: IF con 3 condizioni

    Originariamente inviato da satifal
    Evidentemente perchè la condizione dell'if è, nell'ordine, falsa, falsa, falsa e vera!
    Come faccio quindi a ad eseguire il codice "vero" solo quando tutte e tre le condizioni sono vere?
    Mi spiego:
    //questi valori mi arrivano dal form della pagina precedente
    $produttore_control = 00005
    $numero_control = 12/8229
    $data_control = 18/06/2012

    //questi valori mi arrivano dalla query mysql
    $produttore_db = 00005
    $numero_db = 12/8229
    $data_db = 18/06/2012

    Codice PHP:
    if(($produttore_control == $produttore_db) && ($numero_control == $numero_db) && ($data_control == $data_db)) 
    {
    // vero 
    echo "vero";
    }else{
    //falso 
    echo "falso";


  5. #5
    Originariamente inviato da alangv
    Ma prima c'è qualche while o for o foreach?
    Si, a questo punto vi posto l'intera pagina:
    Codice PHP:
    <?php
    //////////////////////////////////////////////////
    // ddt_ent_sc_fogli_p1.php ->              05/12/2012
    //////////////////////////////////////////////////



    // valorizzazione delle variabili con i parametri dal form
    if(isset($_POST['continue'])&&($_POST['continue']=="Continua"))
        {
        if(isset(
    $_POST['id_ddt_ent']))
            {
            
    $id_ddt_ent addslashes(filter_var($_POST['id_ddt_ent'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['id_produttore']))
            {
            
    $id_produttore addslashes(filter_var($_POST['id_produttore'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['numero_doc']))
            {
            
    $numero_doc addslashes(filter_var($_POST['numero_doc'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['data_doc']))
            {
            
    $data_doc addslashes(filter_var($_POST['data_doc'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['pz_fog']))
            {
            
    $pz_fog addslashes(filter_var($_POST['pz_fog'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['id_job']))
            {
            
    $id_job addslashes(filter_var($_POST['id_job'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['foglio_lung']))
            {
            
    $foglio_lung addslashes(filter_var($_POST['foglio_lung'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['foglio_larg']))
            {
            
    $foglio_larg addslashes(filter_var($_POST['foglio_larg'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['foglio_sp']))
            {
            
    $foglio_sp addslashes(filter_var($_POST['foglio_sp'], FILTER_SANITIZE_STRING));
            }
            
        
    $produttore_control $_POST['id_produttore'];
        
    $numero_control $_POST['numero_doc'];
        
    $data_control $_POST['data_doc'];
        
    // inclusione del file della classe
        
    include "funzioni_mysql.php";
        
    // istanza della classe
        
    $data = new MysqlClass();
        
    // chiamata alla funzione di connessione
        
    $data->connetti();
        
        
    $numero_query $data->query("SELECT * FROM mf_ent");
        
    // controllo sul numero di records presenti in tabella
        
    if(mysql_num_rows($numero_query) > 0)
            {
            
    // estrazione dei record tramite ciclo
            
    while($numero_sql_extract $data->estrai($numero_query))
                {
                
    $produttore_db $numero_sql_extract->id_produttore;
                
    $numero_db $numero_sql_extract->numero;
                
    $data_db $numero_sql_extract->giorno;
                if((
    $produttore_control == $produttore_db) && ($numero_control == $numero_db) && ($data_control == $data_db))
                    {
                    
    // nome della tabella
                    
    $t "fogli_sc";
                    
    // valori da inserire
                    
    $v = array ($id_ddt_ent,$id_produttore,$numero_doc,$data_doc,$pz_fog,$id_job,$foglio_lung,$foglio_larg,$foglio_sp);
                    
    // campi da popolare
                    
    $r =  "id_ddt_ent,id_produttore,numero_doc,data_doc,pz_fog,id_job,foglio_lung,foglio_larg,foglio_sp"
                    
                    
    // chiamata alla funzione per l'inserimento dei dati
                    
    $data->inserisci($t,$v,$r);
                    
    // disconnessione
                    
    $data->disconnetti();
                    echo 
    "Fogli scaricati correttamente.";
                    }else{
                    echo 
    "Il DDT "$numero_control ." del "$data_control ." non &egrave; esistente";
                    echo 
    "
    "
    ;
                    echo 
    "Vuoi inserirlo?";
                    echo 
    "
    "
    ;
                    echo 
    "<form action=\"ddt_ent_sc_fogli_p2.php\" method=\"post\">";
                    echo 
    "<input name=\"id_ddt_ent\" type=\"hidden\" value="$id_ddt_ent .">";
                    echo 
    "<input name=\"id_produttore\" type=\"hidden\" value="$id_produttore .">";
                    echo 
    "<input name=\"numero_doc\" type=\"hidden\" value="$numero_doc .">";
                    echo 
    "<input name=\"data_doc\" type=\"hidden\" value="$data_doc .">";
                    echo 
    "<input name=\"pz_fog\" type=\"hidden\" value="$pz_fog .">";
                    echo 
    "<input name=\"id_job\" type=\"hidden\" value="$id_job .">";
                    echo 
    "<input name=\"foglio_lung\" type=\"hidden\" value="$foglio_lung .">";
                    echo 
    "<input name=\"foglio_larg\" type=\"hidden\" value="$foglio_larg .">";
                    echo 
    "<input name=\"foglio_sp\" type=\"hidden\" value="$foglio_sp .">";
                    echo 
    "<input type=\"submit\" name=\"inserisci\" value=\"Inserisci\">";
                    echo 
    "</form>";
                    
    // disconnessione
                    
    $data->disconnetti();
                    }
                }
            }
        }else{
        
    header("Location: index.php");
        }
    ?>

  6. #6
    Per entrare nell'if occorre che tutte le condizioni siano soddisfatte.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    42
    perchè per ogni risultato del while, cioè $numero_sql_extract ti stampa se è vero o falso, evidentemente hai 4 rows di cui la quarta è vera....

  8. #8
    Ho corretto e ora sembra funzionare.
    Codice PHP:
        $numero_query $data->query("SELECT * FROM mf_ent WHERE id_produttore = "$produttore_control ." AND numero = "$numero_control ." AND giorno = "$data_control ."");
        
    // controllo sul numero di records presenti in tabella
        
    if(mysql_num_rows($numero_query) >= 1)
            {
            echo 
    "Il DDT "$numero_control ." del "$data_control ." non &egrave; esistente";
            echo 
    "
    "
    ;
            echo 
    "Vuoi inserirlo?";
            echo 
    "
    "
    ;
            echo 
    "<form action=\"ddt_ent_sc_fogli_p2.php\" method=\"post\">";
            echo 
    "<input name=\"id_ddt_ent\" type=\"hidden\" value="$id_ddt_ent .">";
            echo 
    "<input name=\"id_produttore\" type=\"hidden\" value="$id_produttore .">";
            echo 
    "<input name=\"numero_doc\" type=\"hidden\" value="$numero_doc .">";
            echo 
    "<input name=\"data_doc\" type=\"hidden\" value="$data_doc .">";
            echo 
    "<input name=\"pz_fog\" type=\"hidden\" value="$pz_fog .">";
            echo 
    "<input name=\"id_job\" type=\"hidden\" value="$id_job .">";
            echo 
    "<input name=\"foglio_lung\" type=\"hidden\" value="$foglio_lung .">";
            echo 
    "<input name=\"foglio_larg\" type=\"hidden\" value="$foglio_larg .">";
            echo 
    "<input name=\"foglio_sp\" type=\"hidden\" value="$foglio_sp .">";
            echo 
    "<input type=\"submit\" name=\"inserisci\" value=\"Inserisci\">";
            echo 
    "</form>";
            
    // disconnessione
            
    $data->disconnetti();
            }else{
            
    // nome della tabella
            
    $t "fogli_sc";
            
    // valori da inserire
            
    $v = array ($id_ddt_ent,$id_produttore,$numero_doc,$data_doc,$pz_fog,$id_job,$foglio_lung,$foglio_larg,$foglio_sp);
            
    // campi da popolare
            
    $r =  "id_ddt_ent,id_produttore,numero_doc,data_doc,pz_fog,id_job,foglio_lung,foglio_larg,foglio_sp"
            
            
    // chiamata alla funzione per l'inserimento dei dati
            
    $data->inserisci($t,$v,$r);
            
    // disconnessione
            
    $data->disconnetti();
            echo 
    "Fogli scaricati correttamente.";
            } 
    La cosa che ancora non capisco è:
    Codice PHP:
    if(mysql_num_rows($numero_query) >= 1
    nella prima graffa non ci và il codice nel caso in cui la condizione sia vera e nell'else il codice nel caso in cui la condizione sia falsa?

  9. #9
    Originariamente inviato da SorGh3Tt4
    La cosa che ancora non capisco è:
    Codice PHP:
    if(mysql_num_rows($numero_query) >= 1
    nella prima graffa non ci và il codice nel caso in cui la condizione sia vera e nell'else il codice nel caso in cui la condizione sia falsa?
    Questa non l'ho capita
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    42
    il codice che hai scritto non mi pare abbia tanto senso...

    quante rows ci saranno con lo stesso id_produttore numero e giorno

    perchè se sai che dalla query esce sempre e solo una ROW è inutile che metti mysql_num_rows($numero_query) >= 1 perchè i valori che potrà avere saranno o 0 o 1.

    ha più senso mettere

    Codice PHP:
    if(mysql_num_rows($numero_query) = 0
    Se invece sai che potrebbero uscire più ROWS devi mettere per forza un WHILE e poi l'IF che controlla ogni ROW

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.