PDA

Επιστροφή στο Forum : PHP: Πρόσβαση σε τιμή εγγραφής ΒΔ και χρήση της σε website



PiXel
14-05-12, 20:42
Καλησπέρα,
Θέλω να μου δώσετε τα φώτα σας σε ένα θεματάκι που έχω με ένα site που φτιάχνω. Το site θα έχει δύο ειδών χρήστες: απλούς και admins. Ο διαχωρισμός γίνεται με ένα attribute "type" που υπάρχει στη ΒΔ και όταν είναι 0 έχουμε απλούς χρήστες και όταν είναι 1 έχουμε admins. Θέλω να εμφανίζω διαφορετικά κουμπιά στο μενού για τους μεν και τους δε. Έτσι, έχω βάλει ένα if-else statement σε PHP στον κώδικά μου που αρχικά ελέγχω αν πρόκειται για συνδεδεμένο χρήστη και στη συνέχεια ελέγχω το type του και αναλόγως εμφανίζω διαφορετικά κουμπιά. Ωστόσο έχω πρόβλημα καθώς ο έλεγχος για περίεργο λόγο μπαίνει μόνο στο πρώτο if, όσες τιμές έδωσα στο type του χρήστη που ελέγχω.

Παραθέτω το κομμάτι που αναφέρω επάνω.

<?php
if(isset($_SESSION['loggedin']))
{
if($type== 0)
{
?>
<li><a href="link1">Αγαπημένες</a>
</li>
<?php
}
elseif($type== 1)
{
?>
<li><a href="link2">Καταχωρημένες</a>
</li>
<li><a href="link3">Προσθήκη νέας</a>
</li>
<?php
}

}
?>
Η μεταβλητή $type έχει τον τύπο του χρήστη (ή έτσι νομίζω, καθώς στο Expression Web που φτιάχνω το site δεν έχω βρει κάτι σαν debugger για να ελέγξω τι τιμή έχει). Το γεμίζω με τον παρακάτω κώδικα:


$SQL="SELECT * FROM users"; //Παίρνουμε τον τύπο του χρήστη απ' τον πίνακα
$result=mysql_query($SQL); //Τον αποθηκεύουμε σε μορφή που μπορεί να διαβαστεί
$dbfield = mysql_fetch_assoc($result);

Εδώ είναι που κολλάω και βρίσκεται το πρόβλημα. Αρχικά έκανα ερώτηση στη ΒΔ ώστε να μου δώσει απευθείας το type απ' τον πίνακα users και στη θέση του $result ήταν η μεταβλητή $type. Παρόλα αυτά διάβασα πως το 'mysql_query($variable)' δεν περιλαμβάνει τιμή αλλά το αν βρέθηκε και πού το record που μας ενδιαφέρει. Οπότε έκανα το παραπάνω παίρνοντας όλα τα πεδία της εγγραφής και καταχωρίζοντάς τα στο $dbfield. Από εκεί θα πρέπει να πάρω το 'type' ($dbfield['type] έλεγε το παράδειγμα που βρήκα) και να το βάλω στη μεταβλητή $type ώστε να γίνει ο έλεγχος. Τώρα που το $type δεν έχει τιμή ή πριν που είχε κάτι σε "true", έμπαινε μόνο στο πρώτο if-statement ($type== 0). Ξέρει κανείς πώς θα πάρω μεμονωμένα την τιμή;

Όλα ΟΚ παιδιά, το διόρθωσα.

@ ADSLgr.com All rights reserved.