Visualizzazione dei risultati da 1 a 10 su 10

Discussione: operatore di controllo

  1. #1

    operatore di controllo

    Raga, urge aiuto !
    Non riesco a capire come impostare in modo semplice un controllo.

    Spiego :
    dovrei sapere se tutti i campi in tabella di nome "eseguito" relativi ad un specifico "codice utente" hanno valore 1 ( campo int predefinito a 0) visto che potrebbe anche non esserci neanche un record dell' utente richiamato, oppure essercene più di uno, come faccio a verificare se tutti i campi "eseguito" in tabella relativi ad un solo utente hanno tutti valore 1 ?

    Ammesso che questo codice funzioni, potrebbe essere semplificato ?



    Codice PHP:

        $CodeUte
    =$_GET['CodiceUtente'];    
      
    $query="SELECT eseguito FROM tabella WHERE CodiceUtente = '$CodUte'";
      
    $select=mysql_query($query) or die("Query fallita".mysql_error()." ".$query);        
      
    $NumRow mysql_num_rows($select);
      
        if (
    $NumRow 0)
        
        {
        
                
    $query="SELECT * FROM tabella  WHERE eseguito =1 AND CodiceUtente = '$CodUte'";
                
    $select=mysql_query($query) or die("Query fallita".mysql_error()." ".$query);    
                
    $NumRow2 mysql_num_rows($select);

                if (
    $NumRow == $NumRow2)
                
                          echo 
    "SI! sono presenti record relativi all'utente e hanno tutti i campi 'eseguito' con valore (1)
                                QUINDI POSSO INSERIRE IN QUESTO BLOCCO IL MIO HTML"
    ;
                                
                    else  echo 
    "No! 
                                  Sono presenti record relativi all'utente ma non hanno tutti i valori a (1)
                                QUINDI FACCIO VISUALIZZARE: NON E' STATO TUTTO ESEGUITO IN HTML    "
    ;
              
         }else{
                
            echo 
    "Non ci sono record relativi a questo codice utente";        
                  
       } 

    Denghiu


    .

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ci saranno modi anche più raffinati, ma sicuramente puoi semplicemente usare GROUP BY e sommare il campo in questione dopodichè vedi semplicemente se il totale è uguale al numero di righe...

  3. #3
    Grazie eiyen,
    In effetti averi voluto ridurre il codice in questo modo rimane praticamente uguale



    .

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dicevo qualcosa come:

    Codice PHP:
    $query="SELECT COUNT(*) AS num, SUM(eseguito) AS somma FROM tabella WHERE CodiceUtente = '$CodUte' GROUP BY CodiceUtente";
    $select=mysql_query($query) or die("Query fallita".mysql_error()." ".$query);
    $result mysql_fetch_assoc($select);

    $flag = ($result['num']==$result['somma']); // true se eseguito sono tutti '1', false altrimenti 
    (non testato... verificare o comunque prendere spunto)

  5. #5
    Uhm
    Mi piace com'è scritta, in caso non ci fossero record di quel determinato utente sarebbe comunque FALSE, giusto ?

    cmq, provo e ti faccio sapere.

    10ks



    .

  6. #6
    eiyen ho provato.
    L'unico problema come immaginavo, rimane quello di capire se ci sono record presenti in tabella per quel determinato utente, e si ritorna con un IF precedente per capire la presenza dell'utente.


    .

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi cambiare solo l'ultima riga così:

    Codice PHP:
    $flag = ($result['num']>0)&&($result['num']==$result['somma']); // true se eseguito sono tutti '1', false altrimenti 

  8. #8
    Ok
    Però io devo restituire le seguenti informazioni:

    1. Sono presenti record relativi a questo utente ma non tutti hanno "eseguito" impostato a (1)

    2. Sono presenti record relativi a questo utente e tutti hanno il flag "eseguito" impostato a (1)

    3. Non sono presenti record per questo utente


    Con il tuo codice riesco a fornire le prime 2 risposte ma per il punto 3 ?





    .

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Codice PHP:
    $flag = ($result['num']>0)?($result['num']==$result['somma']):('undef'); 
    così restituisce:
    'undef' se non trova nulla
    false se trova le info ma non sono tutti pari a '1'
    true come prima ma con tutti i valori pari a '1'

  10. #10
    OK
    Grazie 1000 per l'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.