Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MSSQL][PHP]Rozwiązane
Forum PHP.pl > Forum > Przedszkole
RaitoPL
Witam. Mam mały problem z ifami, pogubiłem się chyba ;o. Mianowicie: mój skrypt wygląda tak, jak podałem niżej. Na pewno po chwili zobaczycie błąd i mi pomożecie, za co będę wdzięczny i tradycyjnie postawię browarka. Chodzi o to, że sprawdzam, czy istnieje użytkownik, jeśli w GET wpisano profile&id=x, i to działa, tyle, że dodatkowo później sprawdzam, czy istnieje admin tym samym sposobem i niestety - komunikaty w przypadku nieznalezienia (nieważne czy) usera/admina się mieszają i wychodzi "Niestety. Taki użytkownik nie istnieje w bazie.Taki admin nie istnieje.". Jak to poprawić? Po prostu pewnie coś z kolejnością. Będę wdzięczny za pomoc.
  1. <?php
  2. //Łączenie z bazą.
  3. include_once 'db.php';
  4. //Jeśli w GET nic nie ma, pokazuje zbanowanych.
  5. if(!count($_GET) > 0){
  6. $nicks = mysql_query("SELECT * FROM black_users order by id desc");
  7. while($nicki = mysql_fetch_array($nicks)){
  8. echo "<a href='?profile&id=$nicki[id]'><b>$nicki[nick]</b></a><br>";
  9. }
  10. }
  11. //Sprawdzanie, czy ID istnieje.
  12. $zmienna = mysql_query("SELECT * FROM black_users where id ='$id'");
  13. $sprawdzajka = mysql_num_rows($zmienna);
  14. if ($sprawdzajka == 0)
  15. {
  16. echo "<b>Niestety. Taki użytkownik nie istnieje w bazie.</b>";
  17. //Jeśli w get wpisano profile, to pokaże info.
  18. }
  19. else{
  20. if(isset($_GET['profile']))
  21. {
  22. $query = mysql_query("SELECT * FROM black_users where id='$id'");
  23. $info = mysql_fetch_array($query);
  24. $admin = $info[zbanowal];
  25. $doadminid = mysql_query("SELECT * FROM admini where nick='$admin'");
  26. $adminid = $doadminid[id];
  27. Status: $info[status]<br>
  28. Zbanowany przez: <a href=?admin&id=$adminid>$info[zbanowal]</a><br>
  29. Kontakt Gadu-Gadu: $info[gg]<br>
  30. <b>Temat i <u>dowody</u></b>: $info[temat]<br>
  31. ";
  32. }
  33. }
  34. $zmienna1 = mysql_query("SELECT * FROM admini where id = '$id'");
  35. $sprawdzajka1 = mysql_num_rows($zmienna1);
  36. if ($sprawdzajka1 ==0)
  37. {
  38. echo "<b>Taki admin nie istnieje.</b>";
  39. }
  40. else{
  41. if(isset($_GET['admin']))
  42. {
  43. $query2 = mysql_query("SELECT * FROM admini where id='$id2'");
  44. $info2 = mysql_fetch_array($query2);
  45. Nick: $info2[nick]
  46. Gadu-Gadu: $info2[gg]
  47. Zbanował już <b>$info2[zbanowani]</b> oszustów!
  48. ";
  49. }
  50. }
  51. ?>
aras785
Mały bałagan ale chyba wiem o co chodzi.
linia 37 i 38, masz zmienna $id1, a w zapytaniu dajesz: $id
RaitoPL
Niee, to nie to. Jak czytałem post, to znalazłem i zmieniłem, niestety - wciąż to samo ; f. Może coś z klamrami..
Wazniak96
Po wyświetleniu, że user nie ustnieje zakącz działanie skryptu. wink.gif
RaitoPL
Znaczy się, zamknąć cały skrypt (?>) ? To później będę musiał znowu includować połączenie i minę się z celem pisania tego w jednym pliku wink.gif.
aras785
Pomyśl o switch
Wazniak96
niee.. chodzi mi o zakąńczenie przez die, w tym wypadku linijka 17.
  1. die("<b>Niestety. Taki użytkownik nie istnieje w bazie.</b>");

PS: Zastosowanie jedynie wtedy bd spełniało oczekiwanie gdy wyświetlenie txt jest ostatnią akcją. ;P
kristaps
Warunki wyglądają ok, bardziej bym stawiał, że zapytanie nic nie zwraca.
RaitoPL
Dałem to tak i teraz jak wchodzę w ?admin&id=x, to wyskakuje komunikat o braku użytkownika zbanowanego, a nie braku admina.
  1. <?php
  2. //Łączenie z bazą.
  3. include_once 'db.php';
  4. //Jeśli w GET nic nie ma, pokazuje zbanowanych.
  5. if(!count($_GET) > 0){
  6. $nicks = mysql_query("SELECT * FROM black_users order by id desc");
  7. while($nicki = mysql_fetch_array($nicks)){
  8. echo "<a href='?profile&id=$nicki[id]'><b>$nicki[nick]</b></a><br>";
  9. }
  10. }
  11. //Sprawdzanie, czy ID istnieje.
  12. $zmienna = mysql_query("SELECT * FROM black_users where id ='$id'");
  13. $sprawdzajka = mysql_num_rows($zmienna);
  14. if ($sprawdzajka == 0)
  15. {
  16. die( "<b>Niestety. Taki użytkownik nie istnieje w bazie.</b>");
  17. //Jeśli w get wpisano profile, to pokaże info.
  18. }
  19. else{
  20. if(isset($_GET['profile']))
  21. {
  22. $query = mysql_query("SELECT * FROM black_users where id='$id'");
  23. $info = mysql_fetch_array($query);
  24. $admin = $info[zbanowal];
  25. $doadminid = mysql_query("SELECT * FROM admini where nick='$admin'");
  26. $adminid = $doadminid[id];
  27. Status: $info[status]<br>
  28. Zbanowany przez: <a href=?admin&id=$adminid>$info[zbanowal]</a><br>
  29. Kontakt Gadu-Gadu: $info[gg]<br>
  30. <b>Temat i <u>dowody</u></b>: $info[temat]<br>
  31. ";
  32. }
  33. }
  34. $xzmienna = mysql_query("SELECT * FROM admini where id = '$xid'");
  35. $xsprawdzajka = mysql_num_rows($xzmienna);
  36. if ($xsprawdzajka ==0)
  37. {
  38. die( "<b>Taki admin nie istnieje.</b>");
  39. }
  40. else{
  41. if(isset($_GET['admin']))
  42. {
  43. $query = mysql_query("SELECT * FROM admini where id='$id'");
  44. $info = mysql_fetch_array($query);
  45. Nick: $info[nick]
  46. Gadu-Gadu: $info[gg]
  47. Zbanował już <b>$info[zbanowanych]</b> oszustów!
  48. ";
  49. }
  50. }
  51. ?>



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Może dlatego, że daję tam
if{isset($_GET['x']), a w adresie jest jeszcze "&id"?
kristaps
Nadal wydaje mi się, że chodzi o puste zapytanie, lub coś z GETem. Ustaw go na sztywno w skrypcie i odpal, wtedy wyeliminujesz kwestię błędnych ifów - o ile są.
aras785
Po każdym mysql_fetch zapodaj printa_r($wynik) i zobacz czy na bank wszystko z zapytaniami jest ok.
RaitoPL
Dałem tylko to do nowego pliku i działa jak ma działać.
  1. <?php
  2. include 'db.php';
  3. $xzmienna = mysql_query("SELECT * FROM admini where id = '$xid'");
  4. $xsprawdzajka = mysql_num_rows($xzmienna);
  5. if ($xsprawdzajka ==0)
  6. {
  7. die( "<b>Taki admin nie istnieje.</b>");
  8. }
  9. else{
  10. if(isset($_GET['admin']))
  11. {
  12. $query = mysql_query("SELECT * FROM admini where id='$id'");
  13. $info = mysql_fetch_array($query);
  14. Nick: $info[nick]
  15. Gadu-Gadu: $info[gg]
  16. Zbanował już <b>$info[zbanowanych]</b> oszustów!
  17. ";
  18. }
  19. }
  20. ?>

Więc nie wiem, co nie trybi ._.
Btw. nie działa mi coś, bo jak jest
  1. $admin = $info['zbanowal'];
  2. $doadminid = mysql_query("SELECT * FROM admini where nick='$admin'");
  3. $adminid = $doadminid[id];

to daję jeszcze
  1. echo "Zbanowany przez: <a href=?admin&id=$adminid>$info[zbanowal]</a><br>"

Ale po najechaniu/kliknięciu w link, nie dodaje ID, czyli coś się nie trybi tam.
kristaps
Zastosuj się do postów wyżej, będziesz wszystko wiedział. Nie mamy dostępu do bazy, sami tego nie sprawdzimy.
RaitoPL
Złota rada.. Stosowałem się. Nie przejdę na switch ze swoich powodów. Więc to jedno odpada. Dałem print_r i wszystko dobrze wyświetla, a mimo to, błąd występuje nadal.
aras785
  1. if(isset($_GET['admin']) and !isset($_GET['profile']))
  2.  
  3. if(!isset($_GET['admin']) and isset($_GET['profile']))


Może to coś da
RaitoPL
Okej, problem rozwiązany wink.gif.
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.