Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Problem z zapytaniem
Forum PHP.pl > Forum > Przedszkole
T0lkien
Witam mam problem z zapytaniem mysql .
Mam tabelę Userban jest tam tylko jedna kolumna o nazwie name i chcę jeśli będzie on w kolumnie to pokazuje mu się że jest zbanowany ,a jeśli nie ma go w kolumnie to pokazuje mu się że nie jest zbanowany . Stworzyłem coś takiego , ale mi nie działa :F
  1. <?php
  2. include('inc/laczenie.php');
  3. $login = $_SESSION['login'];
  4. $result = mysql_query("SELECT * FROM userban WHERE name = '$login'");{
  5. ($row = mysql_fetch_object($result))
  6.  
  7. echo "<b>Status:</b> <font color='green'><b>Nie Zbanowany</b></font><br>";
  8. }else{
  9. echo "<b>Status:</b> <font color='red'><b>Zbanowany</b></font><br>";
  10. }
  11. ?>
  12.  
  13.  
  14. <p>Status: <b><?php echo $stats->name ?></b></p>

Dopiero się uczę php i zbytnio nie ogarniam o co chodzi sciana.gif
Myślałem nad wykorzystaniem echo nie ukrywam tego że to czarna magia dla mnie .
Turson
Tak propo dobrym rozwiązaniem byłoby dodać do tabeli `users` kolumnę 'ban'. Jeśli 'ban'==1 to zbanowany jeśli nie (else) to nie smile.gif
buliq
  1.  
  2. $result = mysql_query("SELECT * FROM userban WHERE name = '$login'");{

tu gdzieś if być powinien tak?
T0lkien
Niestety dodanie 1 albo 0 nie wchodzi grę i to dosłownie . Plugin do mw2 został tak zaprojektowany wiec muszę się dostosować
T0lkien
Cytat(buliq @ 30.12.2011, 21:11:08 ) *
  1.  
  2. $result = mysql_query("SELECT * FROM userban WHERE name = '$login'");{

tu gdzieś if być powinien tak?


Chyba nie udostępniam wam cały kod :
  1. <?php
  2. include('inc/db.php'); //plik odpowiedzialny za poloczenie z baza
  3. $login = $_SESSION['login'];
  4. $result = mysql_query("SELECT * FROM userban WHERE name = '$login'");
  5. ($row = mysql_fetch_object($result))
  6.  
  7. ?>
  8.  
  9.  
  10. <?php include('header.php'); ?>
  11. <h2>ť Mój profil<br /></h2>
  12. <div class="content">
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23. <?php
  24. if (isset($_SESSION['login'])) {
  25. if (isset($_SESSION['login'])) {
  26. echo '<p><img class="user" src="../img/user.png">Jesteś zalogowany jako: <strong>'.$_SESSION['login'].'</strong></p>';
  27. }
  28.  
  29.  
  30.  
  31.  
  32.  
  33. } else {
  34. header('Location: ../blad.php'); // niezalogowany użytkownik zostaje przekierowany na stronę główną
  35. }
  36. ?>
  37.  
  38.  
  39.  
  40. <p>Status: <b><?php echo $stats->name ?></b></p>
  41.  
  42.  
  43.  
  44.  
  45. <?php include('footer.php'); ?>
Turson
Musi być "if", bo inaczej nie ma jak tego sprawdzić czy jest zbanowany
T0lkien

Czy o takie coś chodziło ?
  1. if($result[0] > 0)
  2. {
  3. //Mamy wynik. (Zbanowany)
  4. }
  5. else
  6. {
  7. //Nie mamy wyniku.
  8. }
Turson
Nie do końca. Jeśli $result[0] będzie miał wartość 'kowalski' to jak porówna to się z "< 0"?
Jeśli chcesz w ten sposób to musiałbyś policzyć ile razy ta zmienna występuje w tabeli.

Prostszym rozwiązaniem wydaje się funkcja na sprawdzenie czy w tabeli występuje dana fraza (login), czyli przeszukanie.
Ulysess
hmm
1) Powinieneś raczej trzymać w tabeli bany ID konta niż jego login
2) jeżeli ktoś ma bana to już na stałe lub do momentu aż go nie odbanujesz ?

bo jeśli czasowy to w takiej tabeli mogłbyś w postaci UNIXowej trzymać date zakończenia bana
jeśli nie wiesz jak to się robi to
  1. $koniec_bana = time()+(3600*24);

czyli data konca bana to moment nałożenia go + 24h i w tym momencie dodajesz taki czas do tabeli pola np koniec_bana
(typ pola INT)

w skrypcie sprawdzasz czy w ogóle w tabeli bany jest rekord danego użytkownika jeśli nie ma lub data konca bana jest mniejsza od time() to pokazujesz fragment strony dla tych co nie maja bana
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.