Δημοσιεύτηκε: 18 Ιούλ 2012, 15:01
Οπότε για να γίνει πιο απλό το πρόβλημα, θέλεις να μπορείς να "πάρεις" τις εγγραφές στην βάση που έγιναν από την 1η σελίδα και από την 2η, από ένα συγκεκριμένο χρήση. Σωστά; Μπορείς να προσθέσεις σε αυτές τις εγγραφές λοιπόν ένα επιπλέον στοιχείο που θα σε βοηθήσει να τις επιλέξεις. Πχ, μπορείς στον κάθε χρήστη να δίνεις μια συγκεκριμένη αριθμητική τιμή μέσω cookies. Θα χρησιμοποιείς αυτή την τιμή ως ένα πεδίο/στήλη της εκχώρησης και στο τέλος θα επιλέγεις με:
Έτσι θα επιλέγεις όλες τις εκχωρήσεις που έγιναν στην βάση από τον χρήστη με την αριθμητική τιμή 1. Πλήρες παράδειγμα:
Δύο χρήστες ξεκινούν να απαντούν το ερωτηματολόγιο. Ο πρώτος παίρνει ένα cookie με μια μεταβλητή userValue=1, και ο δεύτερος με userValue=2. Ο πρώτος απαντάει στην ερώτηση 1(σχετικά με την προτίμησή του σε κάποια φαγώσιμα) και στη 2, και δημιουργούνται 2 εγγραφές στην βάση(μόλις πατήσει το next). Ο δεύτερος απαντάει στην ερώτηση 4(σχετικά με την προτίμησή του στα μεταφορικά μέσα) και μόλις πατήσει το next δημιουργείτε μια εγγραφή στην βάση. Οπότε μέχρι τώρα η βάση θα είναι:
Έτσι τώρα όταν ο χρήστης 1 πατήσει το next μπορείς με βάση τις εγγραφές στην βάση με το πεδίο userValue=1 να δεις τι απάντησε ο χρήστης και αναλόγως να συνεχίσεις. Οπότε βγάζεις στον χρήστη 1 τις επόμενες ερωτήσεις, ανάλογα με τι απάντησε στις προηγούμενες.
Το ίδιο ισχύει και για τον χρήστη 2. Μπορείς να κάνεις ακριβώς το ίδιο.
Αυτό τουλάχιστον ήταν μια λύση που σκέφτηκα τώρα. Φυσικά με αυτό τον τρόπο δημιουργούνται τόσες εγγραφές όσες και οι ερωτήσεις, αλλά αυτό στο οποίο θα πρέπει να δώσεις προσοχή είναι η στήλη userValue. Αν χρησιμοποιήσεις μια τέτοια στήλη τότε θα μπορείς να συνεχίσεις με τον τρόπο που δουλεύεις και τώρα.
- Κώδικας: Επιλογή όλων
SELECT * FROM table WHERE userValue=1
Έτσι θα επιλέγεις όλες τις εκχωρήσεις που έγιναν στην βάση από τον χρήστη με την αριθμητική τιμή 1. Πλήρες παράδειγμα:
Δύο χρήστες ξεκινούν να απαντούν το ερωτηματολόγιο. Ο πρώτος παίρνει ένα cookie με μια μεταβλητή userValue=1, και ο δεύτερος με userValue=2. Ο πρώτος απαντάει στην ερώτηση 1(σχετικά με την προτίμησή του σε κάποια φαγώσιμα) και στη 2, και δημιουργούνται 2 εγγραφές στην βάση(μόλις πατήσει το next). Ο δεύτερος απαντάει στην ερώτηση 4(σχετικά με την προτίμησή του στα μεταφορικά μέσα) και μόλις πατήσει το next δημιουργείτε μια εγγραφή στην βάση. Οπότε μέχρι τώρα η βάση θα είναι:
- Κώδικας: Επιλογή όλων
Βάση:
table με όνομα "table"
`-"ερώτηση", "απάντηση", "userValue"
|"1", "πίτσα", "1"
|"2", "κάτι", "1"
`"4", "ποδήλατο", "2"
Έτσι τώρα όταν ο χρήστης 1 πατήσει το next μπορείς με βάση τις εγγραφές στην βάση με το πεδίο userValue=1 να δεις τι απάντησε ο χρήστης και αναλόγως να συνεχίσεις. Οπότε βγάζεις στον χρήστη 1 τις επόμενες ερωτήσεις, ανάλογα με τι απάντησε στις προηγούμενες.
Το ίδιο ισχύει και για τον χρήστη 2. Μπορείς να κάνεις ακριβώς το ίδιο.
Αυτό τουλάχιστον ήταν μια λύση που σκέφτηκα τώρα. Φυσικά με αυτό τον τρόπο δημιουργούνται τόσες εγγραφές όσες και οι ερωτήσεις, αλλά αυτό στο οποίο θα πρέπει να δώσεις προσοχή είναι η στήλη userValue. Αν χρησιμοποιήσεις μια τέτοια στήλη τότε θα μπορείς να συνεχίσεις με τον τρόπο που δουλεύεις και τώρα.
