• Home
  • Forum
  • Fare Web
  • PHP

[PHP] sommare le ore

  • Creatore Discussione Creatore Discussione ste80
  • Data di inizio Data di inizio 19 Lug 2017
Prec.
  • 1
  • 2
Primo Prec. 2 di 2

ste80

Nuovo Utente
25 Feb 2012
38
0
6
44
Brescia
  • 21 Lug 2017
  • #21
eccomi,
ti anticipo che il risultato ottenuto dal codice mysqli e dal codice mysql è identico (ovviamente), così facendo però ottengo la somma delle ore che non è giusto....
PHP:
//somma delle ore--------------------------

//mysqli
$host = 'localhost';     //nome host
$username = 'root';      //user name
$password = '';  //password
$db = 'orari';
$tabella = 'programma';           // nome data base
$conn = mysqli_connect($host,$username,$password, $db) or die (mysql_error());

$r=mysqli_query($conn,"SELECT SUM(HOUR(ore)*3600) as H, SUM(MINUTE(ore)*60) as M, SUM(SECOND(ore)) as S  FROM $tabella");//qui metterai il tuo $tabella

$riga=mysqli_fetch_assoc($r);
echo "ore Totali: ".date('H:i:s',($riga['H']+$riga['M']+$riga['S']))."<br />";


//mysql
$r=mysql_query("SELECT ore FROM $tabella");
var_dump($r);//poi lo togli, dimmi se riporta FALSE o RESOURCE...
$somma=0;
while($riga=mysql_fetch_assoc($r)){
    $tempo=explode(":",$riga['ore']);
    $somma+=$tempo[0]*3600 + $tempo[1]*60+$tempo[2];
}
echo "ore Totali: ".date('H:i:s',$somma)."<br />";

/*
-----------------------------------------


40 minuti più 30 minuti dovrebbe darmi 01:10:00
però se inserisco un valore alle H tutto è corretto usando mysql e modificando il *3600 in $tempo[2]*3600
PHP:
//mysql
$r=mysql_query("SELECT ore FROM $tabella");
var_dump($r);//poi lo togli, dimmi se riporta FALSE o RESOURCE...
$somma=0;
while($riga=mysql_fetch_assoc($r)){
    $tempo=explode(":",$riga['ore']);
    $somma+=$tempo[0] + $tempo[1]*60+$tempo[2]*3600;
}
echo "ore Totali: ".date('H:i:s',$somma)."<br />";

cosa c'è nel codice che non funziona?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 22 Lug 2017
  • #22
ciao
ho capito dove è l'inghippo
l'errore non nasce dalla query ma da data
usando la funzione date la somma in secondi viene considerata la data in timestamp
ora la data in in timestamp = 0 corrisponde (parte da) alla data 1970/01/01 01:00:00 cioè ore 1 del 1 gennaio 1970
per cui mettendo la somma delle ore parte da 1 e non da zero
se provi
PHP:
<?php
$somma=4200;//00:30:00 + 00:40:00 -> 70 min -> 4200 sec
echo date('H:i:s',0)."<br>";//parte da (1970/01/01) 01:00:00
echo date('H:i:s',$somma)."<br>"; // 02:10:00
?>
quindi conviene fare una funzione
ecco lo script
PHP:
<?php
/*modificata tabella tbl e inseriti
1    00:30:00
2     00:40:00
3     00:00:00
4     00:00:00
*/
function trasform($t){
    $h=$t/3600;
    $ore=(int)$h;
    $min=(int)(($t%3600)/60);
    $sec=$t-$ore*3600-$min*60;
    $ore=str_pad($ore, 2, "0", STR_PAD_LEFT);// es da1 a 01, se al posto di 2 metti es 3 da 1 a 001 o da 12 a 012
    $min=str_pad($min, 2, "0", STR_PAD_LEFT);
    $sec=str_pad($sec, 2, "0", STR_PAD_LEFT);
    return "$ore:$min:$sec";
}

$host = 'localhost';     //nome host
$username = 'root';      //user name
$password = 'password';  //password
$db = 'prove';            // nome data base
$conn = mysqli_connect($host,$username,$password, $db) or die (mysql_error());
$r=mysqli_query($conn,"SELECT SUM(HOUR(ore)*3600) as H, SUM(MINUTE(ore)*60) as M, SUM(SECOND(ore)) as S  FROM tbl");//qui metterai il tuo $tabella
$riga=mysqli_fetch_assoc($r);
echo $riga['H']." ".$riga['M']." ".$riga['S']."<br>";
$somma=$riga['H']+$riga['M']+$riga['S'];
echo "$somma<br>";
echo "ore Totali: ".trasform($somma)."<br />";//output ore Totali: 01:10:00 OK
?>
 
Reactions: ste80

ste80

Nuovo Utente
25 Feb 2012
38
0
6
44
Brescia
  • 22 Lug 2017
  • #23
Ok, devo pravarla più tardi pultroppo, devo anche capire esattamente quello che mi hai scritto! Una domanda veloce, questo vale sia se uso mysql che mysqli?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 22 Lug 2017
  • #24
ciao
quello che ho scritto va bene per mysqli, non si può mischiare mysql con mysqli
se vuoi scrivere con le vecchie funzioni mysql devi cambiare la connessione e le varie funzioni, però come già detto le funzioni mysql sono obsolete, deprecate e in via di estinzione, quindi ti convine fare tutto in mysqli
 

ste80

Nuovo Utente
25 Feb 2012
38
0
6
44
Brescia
  • 22 Lug 2017
  • #25
ESATTO FUNZIONA TUTTO!!!!! mitico!!! ti ringrazio tanto per la pazienza la disponibilità e la prontezza dei post. Ho visto un po in cosa differisce mysql e mysqli, devo approfondire ancora bene le argomentazioni poi io sono di 'coccio' quindi mi ci vuole tempo, intanto grazie ancora
 
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
Devi accedere o registrarti per poter rispondere.

Discussioni simili

M
[PHP] Sommare ore e minuti
  • Max61
  • 9 Apr 2018
  • PHP
  • 2
Risposte
22
Visite
6K
PHP 10 Apr 2018
Max61
M
M
[PHP] Sommare due campi calcolati
  • Max61
  • 3 Ott 2018
  • PHP
Risposte
3
Visite
2K
PHP 3 Ott 2018
Max61
M
Sommare i prezzi dei prodotti aggiunti al carrello di diverse aziende con Select sum php mysqli
  • maxnegri
  • 26 Set 2018
  • PHP
Risposte
10
Visite
3K
PHP 28 Set 2018
marino51
C
[PHP] Sommare o sottrarre a ZERO
  • colomber
  • 16 Giu 2018
  • PHP
Risposte
7
Visite
2K
PHP 18 Giu 2018
marino51
[PHP][RISOLTO] Sommare gli importi estratti da un ciclo while
  • elpirata
  • 21 Dic 2017
  • PHP
Risposte
3
Visite
4K
PHP 21 Dic 2017
elpirata
L
[PHP] Sommare campi e aggiornare tabella
  • ltatas
  • 6 Nov 2016
  • PHP
Risposte
14
Visite
5K
PHP 15 Nov 2016
borgo italia
A
Sommare campi stringa MYSQL PHP
  • alo
  • 11 Set 2012
  • PHP
Risposte
3
Visite
4K
PHP 11 Set 2012
alo
A
H
Need Help with PHP Database Connection Issues
  • hellmmithha
  • 19 Dic 2024
  • PHP
Risposte
1
Visite
656
PHP 21 Mar 2025
therope
T
F
Cerco Hosting con VECCHIE versioni di php
  • frk
  • 4 Mar 2024
  • Hosting
Risposte
0
Visite
2K
Hosting 4 Mar 2024
frk
F
Captcha php
  • Cosina
  • 21 Gen 2024
  • PHP
Risposte
1
Visite
2K
PHP 22 Gen 2024
WmbertSea
S
passare un valore da un form a un file .php con metodo post
  • smack2005
  • 15 Nov 2023
  • PHP
Risposte
4
Visite
1K
PHP 23 Nov 2023
zorro
N
php msyql
  • nik13
  • 10 Ott 2023
  • PHP
Risposte
6
Visite
2K
PHP 23 Ott 2023
zorro
N
php problemi a visualizzare video
  • nik13
  • 8 Ott 2023
  • PHP
Risposte
3
Visite
2K
PHP 11 Ott 2023
WmbertSea
A
menu a tendina php
  • Annama74
  • 30 Apr 2023
  • PHP
Risposte
1
Visite
2K
PHP 1 Mag 2023
marino51
D
  • Bloccata
protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito
  • dastur67
  • 5 Apr 2023
  • Web Server
Risposte
1
Visite
3K
Web Server 5 Apr 2023
dastur67
D
F
Php date_diff
  • Fra_23
  • 30 Mar 2023
  • PHP
Risposte
1
Visite
1K
PHP 31 Mar 2023
marino51
K
[PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa
  • Kiko74b
  • 16 Mar 2023
  • PHP
Risposte
2
Visite
2K
PHP 18 Mar 2023
Kiko74b
K
C
Wp-admin a file php
  • Cpu03
  • 25 Gen 2023
  • WordPress
Risposte
5
Visite
4K
WordPress 6 Mar 2023
Cpu03
C
[Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress
  • Lino80
  • 9 Gen 2023
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
0
Visite
3K
Offerte e Richieste di Lavoro e/o Collaborazione 9 Gen 2023
Lino80
Inviare file jpg in locale alla stampante con php
  • csi
  • 14 Dic 2022
  • PHP
Risposte
0
Visite
914
PHP 14 Dic 2022
csi
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?