Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] - Jak sprawdzić rangę użytkownika?, Jak zdefiniować zmienną "$ranga"?
RaitoPL
post 17.07.2012, 20:22:47
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.07.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Rysh
post 17.07.2012, 20:33:20
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Nie działa, czyli co Ci wyświetla?
Bo masz 3 wyjścia, wróżką nikt nie jest.


--------------------
Go to the top of the page
+Quote Post
RaitoPL
post 17.07.2012, 20:41:23
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.07.2012

Ostrzeżenie: (0%)
-----


Wyświetla mi treść echa (czyli "Tutaj byłby Panel Admina"). W moim koncie mam oczywiście ustawiony "status" na "3".
Go to the top of the page
+Quote Post
Rysh
post 17.07.2012, 20:44:01
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


A próbowałeś dodać do zapytania:

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

?


--------------------
Go to the top of the page
+Quote Post
Niktoś
post 17.07.2012, 20:48:19
Post #5





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


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. }
Go to the top of the page
+Quote Post
Rysh
post 17.07.2012, 20:50:36
Post #6





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
Niktoś
post 17.07.2012, 20:52:39
Post #7





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


  1. if("3"==3){
  2. }


Przejdzie?

Ten post edytował Niktoś 17.07.2012, 20:53:00
Go to the top of the page
+Quote Post
RaitoPL
post 17.07.2012, 21:01:19
Post #8





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.07.2012

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
Rysh
post 17.07.2012, 21:03:01
Post #9





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
RaitoPL
post 17.07.2012, 21:06:55
Post #10





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.07.2012

Ostrzeżenie: (0%)
-----


  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

Ten post edytował RaitoPL 17.07.2012, 21:08:25
Go to the top of the page
+Quote Post
Rysh
post 17.07.2012, 21:09:34
Post #11





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


A zmienna $login to z kosmosu?

btw, nie musisz wklejać screenów, wystarczy wstawić w cytat na forum to co wyświetla dana funkcja.

Ten post edytował Rysh 17.07.2012, 21:11:01


--------------------
Go to the top of the page
+Quote Post
Niktoś
post 17.07.2012, 21:09:35
Post #12





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


  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") ;


Ten post edytował Niktoś 17.07.2012, 21:13:58
Go to the top of the page
+Quote Post
RaitoPL
post 17.07.2012, 21:11:16
Post #13





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.07.2012

Ostrzeżenie: (0%)
-----


Rysh: A zmienna "$login" znajduje się w "db.php", które jest includowane.
Niktoś: nie mam tylko jednego rekordu w bazie niestety =/.
Go to the top of the page
+Quote Post
Rysh
post 17.07.2012, 21:18:08
Post #14





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Przecież masz rozwiązanie zagadki w moim poście.
Teraz pomyśl, a jak nie rozumiesz to masz tu podpowiedź:

http://codepad.org/MnKby0pf


--------------------
Go to the top of the page
+Quote Post
RaitoPL
post 17.07.2012, 21:20:35
Post #15





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.07.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował RaitoPL 17.07.2012, 21:22:00
Go to the top of the page
+Quote Post
Niktoś
post 17.07.2012, 21:22:48
Post #16





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


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.

Ten post edytował Niktoś 17.07.2012, 21:23:09
Go to the top of the page
+Quote Post
RaitoPL
post 17.07.2012, 21:31:47
Post #17





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.07.2012

Ostrzeżenie: (0%)
-----


Jest unikalne, nie martw się ;P.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 11.08.2025 - 04:12