Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zapytanie
Forum PHP.pl > Forum > Przedszkole
VirG
Witam!

Mam taki kod:
  1. <?php
  2.  
  3. $admin=mysql_query("SELECT * FROM `users` WHERE `user_admin`='1' AND `user_id`>='1'");
  4. if(mysql_fetch_array($admin))
  5. {
  6. echo "<td><div><a href='/admin/'>Admin</a></div></td>";
  7. }
  8. ?>


i pokazuje panel admina każdemu w menu... :/
Ghost_78
po 1: w if() powiniennes miec mysql_num_rows($admin) zamiast mysql_fetch_array($admin)
po 2: w zapytaniu jak ma byc rozrozniany wchodzacy jak zawsze wynik bedzie prawdziwy
VirG
Czyli że tak ma być?

  1. <?php
  2.  
  3. $admin=mysql_query("SELECT * FROM `users` WHERE `user_admin`='1' AND `user_id`>'0'");
  4. if(mysql_num_rows($admin))
  5. {
  6. echo "<td><div><a href='/admin/'>Admin</a></div></td>";
  7. }
  8. ?>

ale nadal jest tak jak było ;/ jak zrobić ten 2 pkt co podałeś.
sadistic_son
Zapewne pole user_admin ma w bazie format int, tinyint lub bool. W takim wypadku usun cudzyslow: WHERE `user_admin`=1 AND. Natomiast to co po AND jest w ogole zbedne bo id bedzie zawsze >=1. Dodaj natomiast jakis identyfikator zalogowanego aktualnie usera, np login:
  1. $admin=mysql_query("SELECT * FROM `users` WHERE `user_admin`=1 AND `user_login`= '$login' ");
luck
Cytat(VirG @ 6.11.2010, 16:34:20 ) *
ale nadal jest tak jak było ;/ jak zrobić ten 2 pkt co podałeś.

Zastanów się co robi Twoje zapytanie... Pobiera listę wszystkich adminów z bazy. Ty chcesz sprawdzić, czy aktualnie zalogowany user jest adminem. Najprostsze chyba będzie coś takiego:
  1. $idZalogowanegoUsera = $_SESSION['user_id'];
  2. $sql = "SELECT * FROM `users` WHERE `user_admin`='1' AND `user_id`='$idZalogowanegoUsera'";
Edit: Żeby uprzedzić ew. pytania. To jest podpowiedź, a nie gotowy kod. Zakłada, że dane zalogowanego usera zapisujesz w sesji. Nie oczekuj, że wkleisz go, uruchomisz i zadziała.
ciekawskiii
  1. <?php $admin=mysql_fetch_array(mysql_query("SELECT user_admin FROM `users` WHERE `user_admin`='1'"));
  2. if($admin[0] == '1')) {
  3. echo "<td><div><a href='/admin/'>Admin</a></div></td>"; }
  4. ?>


nie lepiej tak? po co w tym zapytaniu id?
CuteOne
ciekawskiii: źle.. robisz dokładnie to samo co opisane w poście pierwszym- wyświetlisz panel wszystkim użytkownikom
ciekawskiii
jezeli user_admin=1 oznacza funkcje admina to nie ma prawa zeby widzial to zwykly user

chyba ze ja nie rozumiem co on chce uzyskac:D
CuteOne
o.o bez komentarza
sebekzosw
  1. $admin = mysql_result(mysql_query("SELECT `user_admin` FROM `users` WHERE `user_login`= '$login' LIMIT 1"), 0);
  2. if($admin == '1')
  3. echo '<td><div><a href='/admin/'>Admin</a></div></td>';


to moje, inne rozwiązanie smile.gif

albo zamiast `user_login` dać `user_id` - zależy jakie masz info o zalogowanym użytkowniku
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.