Elxis CMS Forum

Ελληνικό Forum => Βάσεις Δεδομένων => Topic started by: giannismit on January 18, 2011, 16:30:41

Title: Προσθήκη μοναδικού αριθμού στους χρήστες.
Post by: giannismit on January 18, 2011, 16:30:41
Καλημέρα,
Θέλω να προσθέσω έναν μοναδικό αριθμό (σαν αριθμό μητρώου) σε κάθε χρήστη.
Αυτός θέλω να έχει 4 ψηφία και δεν με πειράζει αν είναι σχετικός με το elx_users id, δηλαδή κάτι σαν id+1000.

Δεν με ενδιαφέρει να αποθηκευθεί σε ξεχωριστό πίνακα στην βάση, απλά θέλω μόνο να εμφανίζω αυτόν τον αριθμό στο users list.

Θα είναι εφικτό να γίνει απλώς με ένα ερώτημα στην βάση;
Title: Re: Προσθήκη μοναδικού αριθμού στους χρήστες.
Post by: CREATIVE Options on January 18, 2011, 16:38:47
O κάθε χρήστης έχει ήδη μοναδικό id και είναι αύξων.
Τώρα για να εμφανίσεις με ελάχιστα ψηφία 4 θα πρέπει να πειράξεις την λίστα και να προσθέσεις +2 σταθερά ψηφία / γράμματα όταν φτάσεις τα 100 μέλοι τα στοιχεία στο id του χρήση θα είναι 5 (2 σταθερά + 3 το id  του χρήστη)
Title: Re: Προσθήκη μοναδικού αριθμού στους χρήστες.
Post by: giannismit on January 20, 2011, 11:25:36
Ναι σωστά όλα αυτά,
Το θέμα με τα τέσσερα και πέντε ψηφία το ξεπερνώ αν προσθέτω στο id to 1000, έτσι το π.χ. το id=88 γίνετε 1088 και το id=188 γίνετε 1118.
Αν εκτελέσω την εντολή:
Code: [Select]
$sql = 'SELECT `id`+1000 AS \'ΑΡ. ΜΗΤΡΩΟΥ\', `name`, `username` FROM `elx_users`';είμαι ΟΚ.
Το ερώτημα είναι πως θα εμφανίσω τα αποτελέσματα της εντολής κάνοντας κλικ σε κάποιο λίνκ ή μενού.
Title: Re: Προσθήκη μοναδικού αριθμού στους χρήστες.
Post by: datahell on January 20, 2011, 20:32:48
Μην το κάνεις id+1000. Είτε χρησιμοποίησε το id του χρήστη ως έχει ή βάλτου ένα πρόθεμα. Σε κάθε περίπτωση δεν χρειάζεται να κάνεις ξεχωριστό query στη βάση.

Για να κάνεις έναν αριθμό $x να εμφανίζεται υποχρεωτικά με, για παράδειγμα, 5 ψηφία:

$y = sprintf("%05d", $x);

Αν τώρα θες να του προσθέσεις και ένα πρόθεμα:

$y = 'AM'.sprintf("%05d", $x);

Αν $x το id των χρηστών, για id = 1 το παραπάνω θα σου δημιουργήσει:
ΑΜ00001
για id χρήστη 127:
AM00127
και ου το καθεξής.

To id του τρέχοντος χρήστη στο Elxis είναι προσβάσιμο έτσι: $my->id.
Το $my->id για τους επισκέπτες είναι μηδέν και μεγαλύτερο του μηδενός για τους συνδεδεμένους χρήστες.
Οπότε μπορείς να κάνεις αυτό:
<?php
global $my;
if ($my->id > 0) {
   echo 'Ο αριθμός μητρώου σας είναι: AM'.sprintf("%05d", $my->id);
}
?>