Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Problem z zapytaniem
-T0lkien-
post
Post #1





Goście







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 (IMG:style_emoticons/default/sciana.gif)
Myślałem nad wykorzystaniem echo nie ukrywam tego że to czarna magia dla mnie .
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował TursoN 30.12.2011, 21:07:49
Go to the top of the page
+Quote Post
buliq
post
Post #3





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


  1.  
  2. $result = mysql_query("SELECT * FROM userban WHERE name = '$login'");{

tu gdzieś if być powinien tak?
Go to the top of the page
+Quote Post
-T0lkien-
post
Post #4





Goście







Niestety dodanie 1 albo 0 nie wchodzi grę i to dosłownie . Plugin do mw2 został tak zaprojektowany wiec muszę się dostosować
Go to the top of the page
+Quote Post
-T0lkien-
post
Post #5





Goście







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'); ?>
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Musi być "if", bo inaczej nie ma jak tego sprawdzić czy jest zbanowany
Go to the top of the page
+Quote Post
-T0lkien-
post
Post #7





Goście








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. }
Go to the top of the page
+Quote Post
Turson
post
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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.

Ten post edytował TursoN 30.12.2011, 21:57:18
Go to the top of the page
+Quote Post
Ulysess
post
Post #9





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 17.09.2025 - 17:31