Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Pobranie grupy użytkownika + IFy
Forum PHP.pl > Forum > Przedszkole
kawon
Witam.

Mam taki problem, chodzi mi o to żeby pobrało grupę użytkownika i jeżeli jest równa np 2 to wyświetla dany plik

  1. $grupa = $SQL->query('SELECT `group` FROM `users` WHERE `id` = "'.$_SESSION['id'].'" LIMIT 1')->fetchall();

Czy dobrze jest skonstruowane te zapytanie?

Ogólnie prosiłbym też o poprawkę tego kodu bo wywala mi białą stronę i nie umiem ogarnąć co jest nie tak:
  1. if($grupa[0]['group'] == 2)
  2. {
  3. include("admin.php");
  4. $go = $_GET['go'];
  5. if(!empty($go)) {
  6. if(is_file("$go.php")) include "$go.php";
  7. else echo "<br />Brak strony o podanym adresie.";
  8. }
  9. else include "home.html";
  10. }
  11. else
  12. {
  13. include("menu.php");
  14. $go = $_GET['go'];
  15. if(!empty($go)) {
  16. if(is_file("$go.php")) include "$go.php";
  17. else echo "<br />Brak strony o podanym adresie.";
  18. }
  19. else include "home.html";
  20. }
peter13135
id jest unikalne, więc nie potrzebnie dajesz limit 1. Id jest intem, więc bez cudzysłowów.
W tym kodzie błędu nie widzę na pierwszy rzut oka, pewnie jest gdzieś w pliku admin.php, albo menu.php, generalnie : sprawdzaj po kolei jaką wartość mają dane zmienne.
kawon
Wszystko poprawiłem jednakże teraz coś musi być z zapytaniem albo ifem od group.
Loguję się użytkownikiem z group 2 i pokazuje to co użytkownikowi o group 1, logując na tego z group 1 pokazuje poprawnie (to co powinno czyli menu.php)

Jakieś rady?
peter13135
rady te same co wcześniej
zrób sobie echo $grupa[0]['group'] ;
będziesz wiedział co porównujesz do tej dwójki
kawon
Przerobiłem trochę to wszystko i taki problem że użytkownik z group 1 jak i 2 mają wyświetlane admin.php, a ten z group 1 powinien mieć pokazane menu.php

Może ktoś to odpowiednio przerobić? Brakuje już pomysłów:
  1. $grupa = mysql_query('SELECT `group` FROM `users` WHERE `id` = '.$_SESSION['id'].' AND `group` = 2');
  2. if($grupa == true){
  3. include("admin.php");}
  4. else{
  5. include("menu.php");}
thek
Ty wiesz co zwraca mysql_query? Moim zdaniem chyba nie bardzo... Zwróci ono wynik zawsze gdy zapytanie się powiedzie. Nieważne czy znajdzie pasujący(!) Innymi słowy False dostajesz tylko gdy masz skopane zapytanie lub baza leży. Aby być pewnym czy dostałeś choć jeden wiersz wyniku musisz to sprawdzić, choćby użyciem mysql_num_rows.

Nie kopiuj żywcem z netu kodu, bo się możesz przejechać, gdy nie rozumiesz co dane funkcje robią i co zwracają. Zalecam więc lekturę manuala wpierw, zanim się zacznie klepać coś na forum, bo potem wychodzą naprawdę proste błędy.
gac3k
a mnie przeraża
  1. $go = $_GET['go'];
  2. if(!empty($go)) {
  3. if(is_file("$go.php")) include "$go.php";


może się mylę, ale to aż się prosi o lfi.

całość jest generalnie nie za dobrze napisania.
kawon
temat do zamknięcia, rozwiązałem problem w inny sposób
pozdrawiam i dzięki za "pomoc"
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.