Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z zapytaniem
-kapakmag-
post 2.01.2012, 20:46:46
Post #1





Goście







Witam mam problem z zapytaniem . Mam tabelę ab_list gdzie są przechowywane bany na serwerze . Wygląd tabeli:
id nick adminnick ip banfrom banto reason status
Edytuj Inline Edit Kopiuj Usuń 1 test *Console* Offline 1325437863 0 None 2
Edytuj Inline Edit Kopiuj Usuń 2 test *Console* 127.0.0.1 1325531716 0 None 2
1-zbanowany
2-Od banowany
Teraz pytanie jak zrobić aby pokazał tylko jeden rekord najlepiej ten drugi ( jest to tabela z permami )

Stworzyłem coś takiego , ale raczej jest to źle
  1. <?php
  2. $result = mysql_query("SELECT * FROM ab_list WHERE nick = '$login' LIMIT 1");
  3. if(mysql_num_rows($result) > 2){
  4. echo 'Status: <b>Dodany</b><br>';
  5. }
  6. else{
  7. echo 'Status:<b>Nie dodany</b><br>';
  8. }
  9.  
  10. ?>
Go to the top of the page
+Quote Post
piotrooo89
post 2.01.2012, 20:55:47
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




nie bardzo rozumiem. może chodzi Ci o to:

  1. SELECT * FROM ab_list WHERE nick = '$login' AND STATUS = 2 LIMIT 1


--------------------
Go to the top of the page
+Quote Post
-kapakmag-
post 2.01.2012, 21:04:04
Post #3





Goście







Nie oto mi chodzi . Chcę aby jeżeli w kolumnie status będzie liczba 2 to będzie pisało że jest od banowany , a jeśli 1 to zbanowany
Go to the top of the page
+Quote Post
piotrooo89
post 2.01.2012, 21:06:34
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




czyli masz pewnie drugą tabele (słownikową) z tym co oznacza każdy status, jeśli tak użyj JOIN'a.


--------------------
Go to the top of the page
+Quote Post
-kapakmag-
post 2.01.2012, 21:07:40
Post #5





Goście







Zapomniałem dodać , że jeżeli nic nie będzie tam pisało po prostu nie będzie tam nawet nicku osoby to pisze że nie jest zbanowany smile.gif
Go to the top of the page
+Quote Post
piotrooo89
post 2.01.2012, 21:10:35
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




kurcze możesz podać strukturę tabel i relacje pomiędzy nimi, bo teraz nie wiem być może Ci chodzi o LEFT JOIN.


--------------------
Go to the top of the page
+Quote Post
Bartłomiej Skwar...
post 2.01.2012, 21:16:47
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 9
Dołączył: 2.01.2012

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


Cytat(kapakmag @ 2.01.2012, 21:04:04 ) *
Nie oto mi chodzi . Chcę aby jeżeli w kolumnie status będzie liczba 2 to będzie pisało że jest od banowany , a jeśli 1 to zbanowany

Zakładam, że to dość proste rozwiązanie i nie ma tutaj oddzielnej tabeli z opisami stanów usera.
Jeżeli coś, to coś, czyli IF.
  1.  
  2. <?php
  3. $result = mysql_query("SELECT `status` FROM `ab_list` WHERE `nick` = '$login' LIMIT 1");
  4. $row = mysql_fetch_row($result);
  5. $stan = $row[0];
  6.  
  7.  
  8. if($stan == "1") {
  9. echo "zbanowany";
  10. }
  11. if($stan == "2") {
  12. echo "niezbanowany";
  13. }
  14.  
  15. ?>
  16.  


Ten post edytował Bartłomiej Skwara 2.01.2012, 21:17:43
Go to the top of the page
+Quote Post
-kapakmag-
post 2.01.2012, 21:17:32
Post #8





Goście







Oto struktura tabeli
  1. CREATE TABLE IF NOT EXISTS `ab_list` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `nick` varchar(64) NOT NULL,
  4. `adminnick` varchar(64) NOT NULL,
  5. `ip` varchar(35) NOT NULL,
  6. `banfrom` int(8) NOT NULL,
  7. `banto` int(8) NOT NULL,
  8. `reason` varchar(128) NOT NULL,
  9. `status` int(1) NOT NULL,
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

No wiec tak wytłumaczę to jeszcze raz smile.gif
Jeżeli osoba która jest w tabeli ma status 2 to znaczy że jest od banowana , 1 zbanowana . Jeżeli nie ma jej w tabeli to chciałbym aby pisało że nie jest zbanowana
2-od banowana
1-zbanowana
brak w tabeli - nie zbanowana stworzyłem taki kod :
  1. <?php
  2. $result = mysql_query("SELECT * FROM ab_list WHERE nick = '$login' ");
  3. if(mysql_num_rows($result) > 0){
  4. echo 'Status: <b>Dodany</b><br>';
  5. }
  6. else{
  7. echo 'Status:<b>Nie dodany</b><br>';
  8. }
  9.  
  10. ?>

Go to the top of the page
+Quote Post
piotrooo89
post 2.01.2012, 21:25:43
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




no to zwykły if

  1. $statusShow = '';
  2. if ( $status == 1 )
  3. $statusShow = 'zbanowana';
  4. else if ( $status == 2 )
  5. $statusShow = 'od banowana';
  6. else
  7. $statusShow = 'nie zbanowana';


i tyle, teraz zmienną $statusShow wyświetlasz w swojej tabelce i już.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:15