Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] - Jak sprawdzić rangę użytkownika?
Forum PHP.pl > Forum > Przedszkole
RaitoPL
Krótko, bo pewnie było poruszane 100x, a mnie szukajka nie lubi.. Okej. Chcę sprawdzić rangę usera robiąc tak:
  1. $user = mysql_query("SELECT * FROM uzytkownik WHERE login='$login'");
  2. $u = mysql_fetch_array($user);
  3. if($u['status']==3){
  4. echo '<li><a href="?task=panel-admina">Panel Admina<span class="ui_icon gallery"></span></a></li>';
  5. }
  6. else
  7. echo 'Tutaj byłby panel admina';

Ale niestety - nie działa. Jak to naprawić? Męczę się nad tym 2 dni(!) i niestety nic nie mogę wykombinować. Proszę o szybką pomoc, będę naprawdę wdzięczny (dam plusa/piwo, jeśli jest tutaj taka możliwość).
Pozdrawiam.
Rysh
Nie działa, czyli co Ci wyświetla?
Bo masz 3 wyjścia, wróżką nikt nie jest.
RaitoPL
Wyświetla mi treść echa (czyli "Tutaj byłby Panel Admina"). W moim koncie mam oczywiście ustawiony "status" na "3".
Rysh
A próbowałeś dodać do zapytania:

or die ("Błąd: ". mysql_error());

?
Niktoś
Nie wiem do końca jak jest z rzutowaniem zmiennych w php.To język dynamicznie typowany.Pole status w bazie danych to varchar czy int?
Może spróbuj:
  1. if($u['status']=="3"){
  2. }
Rysh
Cytat(Niktoś @ 17.07.2012, 21:48:19 ) *
Nie wiem do końca jak jest z rzutowaniem zmiennych w php.To język dynamicznie typowany.Pole status w bazie danych to varchar czy int?
Może spróbuj:
  1. if($u['status']=="3"){
  2. }

Od tego jest ===, == nie sprawdza typu danych z tego co pamiętam.
Niktoś
  1. if("3"==3){
  2. }


Przejdzie?
RaitoPL
Rysh, próbowałem. Nic nie wywala.
Typ pola to INT.
"if($u['status']=="3"){
}"
Też nie działa.

Niktoś: Przecież to sensu nie ma.

Może ma ktoś swój CMS, albo potrafi to napisać po swojemu i tu wstawić?
Rysh
Cytat(Niktoś @ 17.07.2012, 21:52:39 ) *
  1. if("3"==3){
  2. }


Przejdzie?

http://codepad.org/pSTAYo2E
http://codepad.org/jjfLrNzF

No to, wklej kod poniżej i pokaż co pokazuje.
RaitoPL
  1. <?php
  2. include 'db.php'; // połączenie się z bazą danych
  3. if (!isset($_SESSION['login'])) {
  4. echo '<li><a href="index.php">Główna</a></li>
  5. <li><a href="index.php?str=info">Informacje</a></li>
  6. <li><a href="?str=kontakt">Kontakt</a></li>';
  7. }
  8. echo '<li><a href="index.php">Główna</a></li>
  9. <li><a href="?str=info">Informacje</a></li>
  10. <li><a href="?str=kontakt">Kontakt</a></li>
  11. <li><a href="?str=uzytkownik">Uzytkownik</a></li>';
  12.  
  13. $user = mysql_query("SELECT * FROM uzytkownik WHERE login='$login'");
  14. $u = mysql_fetch_array($user);
  15. if($u['status'] == 3){
  16. echo '<li><a href="?str=panel-admina">Panel Admina</a></li>';
  17. }
  18. else{
  19. echo 'Tutaj byłby panel admina';
  20. }
  21. ?>


I nadal nic. Wyświetla się tylko:
http://scr.hu/12x/02w4q


Edit: wkleiłem ten kod w złym miejscu. Przekleiłem przed echo po else i wyszło mi:
http://scr.hu/12x/jilc7
Rysh
A zmienna $login to z kosmosu?

btw, nie musisz wklejać screenów, wystarczy wstawić w cytat na forum to co wyświetla dana funkcja.
Niktoś
  1. $user = mysql_query("SELECT * FROM uzytkownik WHERE login='$login'");
  2. while ($row = mysql_fetch_array($user)) {
  3. if($row['status']==3){
  4. echo '<li><a href="?task=panel-admina">Panel Admina<span class="ui_icon gallery"></span></a></li>';
  5. }
  6. else{
  7. echo 'Tutaj by�by panel admina';
  8. }
  9. }
  10.  

Wydaje mi się ,że musisz użyć pętli, chyba, że masz jeden rekord w bazie lub użyć:
  1. $user = mysql_query("SELECT * FROM uzytkownik WHERE login='$login' Limit 1") ;
RaitoPL
Rysh: A zmienna "$login" znajduje się w "db.php", które jest includowane.
Niktoś: nie mam tylko jednego rekordu w bazie niestety =/.
Rysh
Przecież masz rozwiązanie zagadki w moim poście.
Teraz pomyśl, a jak nie rozumiesz to masz tu podpowiedź:

http://codepad.org/MnKby0pf
RaitoPL
Okej, poradziłem sobie. Jakby ktoś chciał:

  1. $zapytanie = mysql_query("SELECT * FROM $tabela
  2. WHERE login='{$_SESSION["login"]}'");
  3. $wyniki = mysql_fetch_array($zapytanie;
  4. if($wyniki['status'] == 3){
  5. echo '<li><a href="?str=panel-admina">Panel Admina</a></li>';
  6. }
  7. else{
  8. echo 'Tutaj byłby panel admina';
  9. }
  10. ?>


Do zamknięcia. Każdy post dostał "pomógł". Dziękuję Wam za czas.
Niktoś
Cytat
Niktoś: nie mam tylko jednego rekordu w bazie niestety =/.

A pole login jest unikalne tzn.nie powtarzają Ci się loginy w bazie? Jeśli nie to należało by zwiększyć kryterium wyszukiwania w bazie danych aby wydobyć dane tego jednego prawidłowego użytkownika.
RaitoPL
Jest unikalne, nie martw się ;P.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.