Πινακάκι στατιστικων στοιχήματος

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
heavyaris
Δημοσιεύσεις: 295
Εγγραφή: 15 Απρ 2008 21:31

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από heavyaris » 16 Φεβ 2011 09:31

Καλημέρα, θα ήθελα να σχεδιάσω ένα πινακάκι σαν αυτά τα 2: http://www.kerdoskopos.com/bet_15/tamei ... stats.html
το πρώτο "Overall Statistics" είναι για όλα τα έτη, από την στιγμή που τρέχει η ιστοσελίδα, το έχω κάνει ήδη. αυτό που με "ψαρώνει" είναι το δεύτερο.
Ας τα πάρουμε τα πράματα όμως ένα-ένα, στο πεδίο επιλογής έτους καταλαβαίνω ότι πρέπει να κάνω select distinct απο την βάση, αλλά το πεδίο της mysql είναι date, πχ 2009-12-31. Πως θα μπορούσα να πάρω μόνο το έτος;
ευχαριστώ

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από Apostolis_38 » 16 Φεβ 2011 10:04

Θα μπορούσες να το κάνεις κάπως έτσι.

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

SELECT πεδίο FROM πίνακας WHERE ".(date ('Y',strtotime($row["πεδίο"]) ) )." = κριτήριο";
Είναι λίγο tricky όμως. Τσεκαρέ καλά οτι κάνει αυτό που θέλεις.

Ενας άλλος τρόπος λίγο πιο σίγουρος είναι να πάρεις πρώτα τις μοναδικές τιμές και με βάση αυτές να κάνεις μια δεύτερη αναζήτηση.

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

SELECT ημερομηνία FROM πίνακας GROYP BY ημερομηνία";
while κ.λ.π. κ.λ.π. {
 $metavliti = date ('Y',strtotime($row["ημερομηνία"]) )
και μετά

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

SELECT πεδίο FROM πίνακας WHERE ημερομηνία = ".$metavliti." GROYP BY πεδιο";
edit Εβαλα πάλι τον πρώτο τρόπο γιατί φαίνεται τον έφαγε ο δαίμων του πληκτρολογίου :P

heavyaris
Δημοσιεύσεις: 295
Εγγραφή: 15 Απρ 2008 21:31

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από heavyaris » 16 Φεβ 2011 12:10

ευχαριστώ πολύ, η αναζήτηση με χρονολογία θα είναι το δεύτερο στάδιο, πρώτα θα ήθελα να συμπληρώνεται το drop down, αλλά όχι να βάζω εγώ της ημερομηνίες ή να γεμίζουν με λούπα, να διαβάζονται απο τα πεδία τις εγγραφής πχ αν είχα 2 πεδία: 2009-31-1 και 2010-25-9 να έβγαζε το drop down: 2009,2010

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από Apostolis_38 » 16 Φεβ 2011 12:36

Αν δεν υπάρχει ο κίνδυνος να λείπει κάποιο έτος από τη βάση (π.χ. 2010->2011->2014)
καλύτερα κάντο με σκέτη html ώστε να μην "καταπονείς" το script τζάμπα.
Οχι οτι θα τα χρειαστεί εξαιτίας αυτού του query αλλά γιατί να μην το γλυτώσεις.
Βάλε και επιλογές μέχρι το 3000 να ησυχάσεις :D

heavyaris
Δημοσιεύσεις: 295
Εγγραφή: 15 Απρ 2008 21:31

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από heavyaris » 16 Φεβ 2011 12:39

ευχαριστώ για την απάντηση.
Σίγουρα το πιο έυκολο είναι αυτό, όμως θα φαίνεται άσχημα ένα έτος που δεν υπάρχει.
εκτός αν επιστρέφω κάθε χριστούγεννα να προσθέτω κώδικα :p

Υ.Γ είχα κάνει και παλιότερα κάτι αντίστοιχο με select distinct, αλλά με προβληματίζει πως το πεδίο δεν έχει μια λέξη μέσα, αλλα έτος-μήνα-μέρα

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από Apostolis_38 » 16 Φεβ 2011 13:05

Βάλε το date('Y') κι άσε τις php/mysql να τραβήξουν τις μαύρες.

heavyaris
Δημοσιεύσεις: 295
Εγγραφή: 15 Απρ 2008 21:31

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από heavyaris » 16 Φεβ 2011 13:26

εκτός αν: έχω μια συνάρτηση που παίρνει το "αμερικάνικο" φορμάτ ημερομηνίας και το αντιστρέφει σε "ελληνικό". θα την χρησιμοποιήσω άλλά θα κρατήσω όπως είπες την μεταβλήτή με το χρόνο μόνο.
αλλά και πάλι δεν πρόκειται να λειτουργησει η distinct αφου είναι παραπάνω απο μια λέξη.
πχ αν είχα άρης, αρης, τακης θα επέστρεφε αρης τακης.
τώρα με ημερομηνίες όμως δεν το βλέπω...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από Apostolis_38 » 16 Φεβ 2011 13:38

Πολύ αγχώνεσαι.
Ξέρει η php τι θα κάνει.
Απλώς κοίτα να μην μπλέξεις το Αμερικάνικο με το Ελληνικό format ημερομηνίας.
Οχι εδώ αλλά στην καταχώρηση.
Αν πας να καταχωρήσεις το 2011-12-02 με Ελληνικό format (02-12-2011)
μετά στο select δεν θα βρίσκει τίποτα ή θα βρίσκει άλλα αντί άλλων.

heavyaris
Δημοσιεύσεις: 295
Εγγραφή: 15 Απρ 2008 21:31

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από heavyaris » 16 Φεβ 2011 13:54

το έχω λύσει αυτό με την καταχώρηση, κανονικά περνάνε οι ημερομηνίες στην mysql. το θέμα είναι, λειτουργεί η distinct? εαν εγω έχω 2008-1-31 και 2008-2-31 δεν νομίζω να επιστρέψει αποτέλεσμα 2008..

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από korgr » 16 Φεβ 2011 14:16

Αν υποθέσουμε πως οι εγγραφές είναι στην μορφή YYYY-MM-DD, το πεδίο της ημερομηνίας είναι το `recordDate` και ο πίνακας ο `records`

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

SELECT distinct SUBSTRING(`recordDate`, 1, 4) as year from `records`

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από Apostolis_38 » 16 Φεβ 2011 14:25

Ενδιαφέρον ο τρόπος του korgr και ομολογώ πως δεν τον γνώριζα.
Πάντως συνεχίζω να πιστεύω πως αγχώνεσαι πολύ.
Απλώς test it.

edit Δοκίμασε και την GROUP BY αν θες.
Κάνει το ίδιο πράγμα αλλά με λίγο διαφορετικό τρόπο και μπορεί να σου κάνει καλύτερα.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από korgr » 16 Φεβ 2011 14:32

Σωστά Αποστόλη!
Και όπως πολύ σωστά σε κάποιο αλλο topic αναφέρθηκε, στο web programming δεν υπάρχουν μονόδρομοι. Μέσα από τον πειραμματισμό προκύπτουν νέες ιδέες. Ίσως οι περισσότερες χειρότερες από τα τρέχοντα standards. Όχι όμως όλες :)

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από fafos » 16 Φεβ 2011 16:29

efoson xrhsimopoieis "amerikaniko" format:

gia to drop down ton eton:

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

SELECT DISTINCT YEAR(date_added) AS year FROM table ORDER BY year ASC

gia ton pinaka:

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

SELECT DISTINCT MONTH(date_added) AS month, allo_pedio,kai_allo_pedio klp klp FROM table WHERE YEAR(date_added)='2011' GROUP BY month ORDER BY date_added ASC
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από Apostolis_38 » 16 Φεβ 2011 19:26

Τον τσακίσαμε.
Βλέπω να ασπρίζουν τα μαλλιά του :roll:

heavyaris
Δημοσιεύσεις: 295
Εγγραφή: 15 Απρ 2008 21:31

Πινακάκι στατιστικων στοιχήματος

Δημοσίευση από heavyaris » 16 Φεβ 2011 20:19

παιδιά, ευχαριστώ για τον χρόνο σας, θα το εφαρμόσω και επιστρέφω δριμύτερος!

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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