[PHP] Sommare ore e minuti

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio
Infatti se faccio così non mi il totale ma soltanto i due parziali però recupero sia il mese che l'anno...
PHP:
$sql = "CREATE TABLE riepilogototalemese AS SELECT id, mese, anno, nominativo, matricola, livello, SEC_TO_TIME(SUM(TIME_TO_SEC(tblorario.tot_oreferiali))), SEC_TO_TIME(SUM(TIME_TO_SEC(tblorario.tot_orefestive)))
        FROM tblorario WHERE mese='$mese' AND anno='$anno'
        GROUP BY mese, nominativo";
un altra cosa, la persona non deve superare le 180 ore e con questo formato ora (time) non le conta più correttamente, basta inserire una circa 15ore e mi dice che ne ho già fatte 65806!!!
codice che utilizzo per conteggio
PHP:
//VERIFICA SE HA FATTO 180 ORE
$nominativo = mysql_real_escape_string($nominativo);
$matricola  = mysql_real_escape_string($matricola);

$tot_oreferiali = date('H:i:s,time())', strtotime($oraout_feriale) - strtotime($orain_feriale) - 3600);              
$tot_orefestive = date('H:i:s,time())', strtotime($oraout_festive) - strtotime($orain_festive) - 3600);

$tot_ore = $tot_oreferiali + $tot_orefestive;

$db = mysql_connect($host, $user, $password) or die ("Errore nella connessione.");
mysql_select_db($database, $db) or die ("Errore nella selezione del database.");

$query = "SELECT ( SUM(tot_oreferiali) + SUM(tot_orefestive) ) AS Tot_Ore_Fatte FROM tblorario where nominativo='$nominativo' AND matricola = '$matricola'";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$max_ore = $row['Tot_Ore_Fatte'];

$tot_ore = $tot_oreferiali + $tot_orefestive + $max_ore;

if ($tot_ore > 180)
    { msgErr("Con le ore di oggi arrivi a fare $tot_ore ore di straordinario, superando le 180"); }
// FINE VERIFICA SE HA FATTO 180 ORE//
 
Guarda, dovresti uniformare le date e i time, altrimenti avrai sempre qualche disallineamento.
Per la conversione ti converrebbe utilizzare date('H', TEMPO = int), non hai il problema sopra citato
 
Ciao e grazie ancora per la pazienza, ho fatto questa query per recuperare i valori delle colonne ore come mi hai suggerito e dalle prove che ho fatto conta bene...
PHP:
$query = "SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(tblorario.tot_oreferiali))) AS Tot_Ore_Fatte_feriali,
          SEC_TO_TIME(SUM(TIME_TO_SEC(tblorario.tot_orefestive))) AS Tot_Ore_Fatte_festive
          FROM tblorario where nominativo='$nominativo' AND matricola = '$matricola'";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$max_ore_feriali = $row['Tot_Ore_Fatte_feriali'];
$max_ore_festive = $row['Tot_Ore_Fatte_festive'];
$tot_ore = $tot_oreferiali + $tot_orefestive + $max_ore_feriali + $max_ore_festive;
grazie infinite per la pazienza;)
Max61
 

Discussioni simili