Ποιος είναι ο καλύτερος τρόπος για να υπολογίζω την συνολική ώρα κάποιων event

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
sibas
Honorary Member
Δημοσιεύσεις: 1852
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

Ποιος είναι ο καλύτερος τρόπος για να υπολογίζω την συνολική ώρα κάποιων event

Δημοσίευση από sibas » 24 Μάιος 2016 11:02

Γεια χαρά
Φτιάχνω ένα ημερολόγιο όπου θέλω να αποθηκεύω events ανά minutes.
Για να είμαι ακριβής, έχω συγκεκριμένα events και συγκεκριμένες ώρες

τα events μου είναι (όνομα, διάρκεια σε λεπτά)
  • disco = 15
    rap = 20
    rock-enroll = 30
    hip-hop = 40
    punk = 45

Κώδικας: Επιλογή όλων

πχ (πρόχειρη πρώτη ιδέα) table  events
eventID, eventName,  dutation (σε λεπτά?), yearmonthday, totalTimeId, userID
1, disco, 15, 2016-5-24, 1, 1
2, rap, 20, 2016-5-24, 1, 2
3, rock-enroll, 30, 2016-5-24, 1, 3
4, disco, 15, 2016-5-24, 1, 4
5, punk, 45, 2016-5-25, 2, 2
6, hip-hop, 40, 2016-5-24, 1, 5
7, rap, 25, 2016-5-25, 2, 18

Κώδικας: Επιλογή όλων

table totalTimeHoursPerDay
ID, yearmonthday, totalTimeHours
1, 2016-5-24, 120 (σε λεπτα?)
2, 2016-5-25, 65 (σε λεπτα?)
αυτό που δεν γνωρίζω (και θέλω βοήθεια)
είναι πώς να κάνω την πρόσθεση (duration σε λεπτά) και να μου γυρίζει τις συνολικές ώρες και να αποθηκεύονται στο totalTimeHoursPerDay έτσι ώστε επιλέγοντας το να μου έχει την συνολική ώρα για την συγκεκριμένη ημερομηνία
αλλά και πώς να γίνεται η αφαίρεση, σε περίπτωση που κάποιος ακύρωση το event του.

προτιμώ οι πράξεις να γίνονται με την mysql αυτόματα αντί για την php
υπάρχει κάποια πρόταση/ιδέα για τις προσθαφαιρέσεις?
Ευχαριστώ

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Ποιος είναι ο καλύτερος τρόπος για να υπολογίζω την συνολική ώρα κάποιων event

Δημοσίευση από burnmind » 25 Μάιος 2016 13:23

Δοκίμασε να χρησιμοποιήσεις Triggers.

sibas
Honorary Member
Δημοσιεύσεις: 1852
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

Ποιος είναι ο καλύτερος τρόπος για να υπολογίζω την συνολική ώρα κάποιων event

Δημοσίευση από sibas » 25 Μάιος 2016 14:42

οκκ θα το παω με php μιας και δεν βρισκω άκρη με mysql

ωστόσο μου προέκυψε ένα άλλο θέμα

έστω ότι παίρνω από την db τις παρακάτω τιμές

Κώδικας: Επιλογή όλων

$minutes=array('15','30','45','15');
με πιο τρόπο θα γυρίσω αυτές τις τιμές ΚΑΙ όταν τελειώσουν να μου γυρίσει μια τιμή πχ 30?

προσπαθώ κάπως έτσι αλλά!!!!

Κώδικας: Επιλογή όλων

$startHours = new DateTime('2016-05-25 08:00');
$endHours = new DateTime('2016-05-25 12:00');
$endHours = $endHours->modify('+1 minute'); // τελευταία τιμή μετατόπισης.
$minutes=array('15','30','45','15');

foreach($minutes as $k => $v) {
// εδω είναι το πρόβλημα? πως να αλλάξω την τιμή του $v όταν τελειώσει το array $minutes?
	$separate_minutes = new DateInterval('PT'.$v.'M');
}

$finalHours = new DatePeriod($startHours, $separate_minutes ,$endHours);

foreach ($finalHours as $timeformat){
    echo '<p>'.$timeformat->format&#40;'H&#58;i'&#41;.'</p>';
&#125;
το αποτέλεσμα του παραπάνω είναι
08:00

08:15

08:30

08:45

09:00

09:15

09:30

09:45

10:00

10:15

10:30

10:45

11:00

11:15

11:30

11:45

12:00
αυτό που θέλω να πετύχω είναι

08:00

08:15 -> τιμή από την βάση start

08:30 -> τιμή από την βάση

08:45 -> τιμή από την βάση

09:00 -> τιμή από την βάση end

09:30 ---> ολα τα παρακάτω + αυτό να παιρνουν την τιμή πχ 30

10:00

10:30

11:00

11:30

12:00
help anybody?

sibas
Honorary Member
Δημοσιεύσεις: 1852
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

Ποιος είναι ο καλύτερος τρόπος για να υπολογίζω την συνολική ώρα κάποιων event

Δημοσίευση από sibas » 25 Μάιος 2016 15:08

άκυρο το παραπάνω
τρέξτε αυτό αν κάποιος θέλει να δοκιμάση

Κώδικας: Επιλογή όλων

$startHours = new DateTime&#40;'2016-05-25 08&#58;00'&#41;;
$endHours = new DateTime&#40;'2016-05-25 12&#58;00'&#41;;
$endHours = $endHours->modify&#40;'+1 minute'&#41;; // add the last shift value.
/*
$minutes=array&#40;'10','20','30','40'&#41;;

foreach&#40;$minutes as $v&#41; &#123;
	$separate_minutes = new DateInterval&#40;'PT'.$v.'M'&#41;;
&#125;
*/

$separate_minutes = new DateInterval&#40;'PT15M'&#41;; // 15 λεπτα διαχωρισμός
$finalHours = new DatePeriod&#40;$startHours, $separate_minutes ,$endHours&#41;;

foreach &#40;$finalHours as $timeformat&#41;&#123;
    echo '<p>'.$timeformat->format&#40;'H&#58;i'&#41;.'</p>';
&#125;

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες