Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    33

    Estrarre 3 valori diversi da unica colonna

    Dopo essermi scervellato inutilmente sono qui a chiedere aiuto a voi.
    Sono ai primi passi con PHP e MySql e devo risolvere questo dilemma. Mettiamo che ho dei dipendenti identificati da un codice univoco.
    Ogni dipendente ha una o più raccomandate che deve ritirare in ufficio. Le buste possono essere in
    stato di "giacenza" (ovvero in attesa di ritiro)
    stato di "ritirato" ( il dipendente ha preso la busta)
    oppure "rifiutato" (il dipendente l'ha vista ma non ha voluto ritirarla)
    questi tre stati sono indentificati rispettivamente dai valori 0, 1, 2.

    Quindi ho una tabella "raccomandate" con semplicemente 3 campi di cui
    id_raccomandata è auto increment primary key

    id_raccomandata cod_dipendente stato_ritiro
    1 03 0
    2 03 1
    3 05 2
    4 03 2
    5 04 0
    venendo al dunque dovrei riuscire a recuperare la somma dei vari "stati busta" con un select al quale passo il cod_dipendente del singolo dipendente, che in questo esempio sarebbe:

    dipendente 03 : 1 busta in giacenza, 1 ritirata, 1 rifiutata

    C'è un modo senza dover fare 3 query distinte alla ricerca dei singoli valori?
    Grazie a chi vorrà darmi una mano.

    Edit:
    Ovviamente devo farlo con codice PHP...
    Ultima modifica di Oslino; 02-04-2014 a 10:33

  2. #2
    Forse ho capito male,

    Ma un banale :
    SELECT stato_ritiro
    FROM raccomandate
    WHERE cod_dipendente=xx

    dove xx potrebbe essere ad esempio uguale a 03

    non va bene?
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    33
    No, non va bene perchè mi farebbe l'elenco. A me serve il totale delle raccomandate divise per singolo "stato".

    Al momento sto usando questo codice, ma so che si può fare di meglio.

    Codice PHP:
    $query[] = "SELECT  * FROM raccomandate WHERE cod_dipendente = '" $_SESSION['cod_dipendente'] . "' AND stato_ritiro = 0";
    $query[] = "SELECT  * FROM raccomandate WHERE cod_dipendente = '" $_SESSION['cod_dipendente'] . "' AND stato_ritiro = 1";
    $query[] = "SELECT  * FROM raccomandate WHERE cod_dipendente = '" $_SESSION['cod_dipendente'] . "' AND stato_ritiro = 2";

    for(
    $i=0$i<count($query); $i++){
            
    $arrayQuery $query[$i];
            
    $select_query mysqli_query($cnt$arrayQuery) or die(mysqli_error($cnt));
            
    $resAcc[] = mysqli_affected_rows($cnt);
            echo 
    $arrayQuery ' = ' $resAcc '<br>'// DEBUG
            
    }

    echo 
    $resAcc[0];
    echo 
    $resAcc[1];
    echo 
    $resAcc[2]; 
    Ultima modifica di Oslino; 02-04-2014 a 11:08

  4. #4
    ok avevo capito male io...

    Per vedere ad esempio quante buste il dipendente 03 ha in giacenza puoi fare cosi:

    SELECT stato_ritiro , COUNT(cod_dipendente)
    FROM raccomandate
    WHERE cod_dipendente=03 and stato_ritiro=0
    GROUP BY stato_ritiro
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    33
    Scusa l'ignoranza, ma dalla tua query con che comando estraggo i singoli dati usando PHP?

  6. #6
    Questa domanda devi porla nel forum php, come da regolamento
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

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.