Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL]Jak sprawdzić w jakim przedziela zawiera się liczba oraz jej %
szczabik
post 11.06.2008, 14:49:54
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Mam w bazię taką tabele
id posts names
1 4 Ranga1
2 8 Ranga2
3 12 Ranga2
4 16 Ranga4
gdzie post to liczba postów od której zaczyna się ranga i chce sprawdzić w jakim przedziale zawiera się liczba postów którą napisał użytkownik do tego służy u mnie
  1. <?php
  2. '".$userdata['user_posts']."'
  3. ?>

i chciałem zrobić takie zapytanie i nie działa i nie wiem do końca jak je zrobić zrobiłem tak ale to nie działa
  1. <?php
  2. $wynik = dbquery("SELECT * FROM ".$db_prefix."forumrang WHERE names BETWEEN posts='".$userdata['user_posts']."'");
  3.  
  4. if(dbrows($wynik) > 0) {
  5.  
  6. while($r = dbarray($wynik))
  7. {
  8.  
  9. echo "liczba zawiera sie w przedziale ".$r['names'].""; 
  10.  
  11. }
  12. }
  13. ?>


Myślę że widomo o co mi chodzi i że ktoś pomoże jak to uda mi się zrobić to potem napisz o co mi chodzi z tymi %
Go to the top of the page
+Quote Post
Crozin
post 11.06.2008, 15:11:49
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. <?
  2.  
  3. $posts = 15; //ilość postów uzytkownika
  4. $table = 'mojaTabela'; //nazwa tabeli
  5.  
  6. $query = sprintf('SELECT * FROM %s WHERE posts >= %s ORDER BY posts ASC LIMIT 1;', $table, $posts);
  7.  
  8. $result = mysql_query($query);
  9. $row = mysql_fetch_array($result);
  10.  
  11. print_r($row);
  12.  
  13. ?>
Go to the top of the page
+Quote Post
szczabik
post 11.06.2008, 15:40:55
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobiłem tak i działa
  1. <?php
  2. $query = sprintf('SELECT * FROM %s WHERE posts >= %s ORDER BY posts ASC LIMIT 1;', $db_prefix.'forumrang', $userdata['user_posts']);
  3.  
  4. $result = dbquery($query);
  5. $row = dbarray($result);
  6.  
  7. print_r($row);
  8. ?>


Array ( [id] => 1 [posts] => 4 [names] => Ranga1)

A chciał bym by wyświetlało tylko Ranga1
Go to the top of the page
+Quote Post
mike
post 11.06.2008, 15:46:33
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Człowieku! A może warto pomyśleć?!
Dostałeś tablicę w wyniku? Nie potrafisz sobie z niej wyświetlić jednego elementu?

Ja wiem że to jest Przedszkole ale bezmyślne oczekiwanie na gotowe z wyłączonym myśleniem nie wróży dobrze dla Ciebie.
  1. <?php
  2.  
  3. echo $row['names'];
  4.  
  5. ?>
Go to the top of the page
+Quote Post
szczabik
post 11.06.2008, 15:56:09
Post #5





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


I teraz to co najważniejsze chciał bym zrobić tak że jeśli wynik zawiera się w przedziale od 1 do 4 i user napisał 2 posty to wyświetlić to w % czyli 50 % wiem że trzeba by było wynik razy 100 i podzielić przez 2 tylko nie wiem jak to dokładnie zrobić Bo chodzi o to by procenty oznaczały ile procent brakuje mu do następnej rangi i gdy następną range osiągnie to znowu np. gdy napisze 7 postów to będzie się zawierać w przedziale 4-8 i wyświetli mu ile %
może mnie ktoś naprowadzić jak to zrobić
Go to the top of the page
+Quote Post
Crozin
post 11.06.2008, 19:33:13
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. <?
  2.  
  3. $query = sprintf('SELECT * FROM %s WHERE posts >= %s ORDER BY posts ASC LIMIT 2;', $db_prefix.'forumrang', $userdata['user_posts']);
  4.  
  5. $result = dbquery($query);
  6.  
  7. //nie wiem jak dzała Twoja funkcja dbarray(), ale zapewne jest to mysql_fetch_array z jakimis dodatkami
  8.  
  9. $row = dbarray($result);
  10. $currentRank = $row['names']; //aktualna ranga uzytkowniaka
  11. $currentRankLimit = $row['posts']; //limit aktualnej rangi uzytkownika
  12.  
  13. $row = dbarray($result);
  14. $nextRank = $row['names']; //nastepna ranga (do której uzytkownik dąży)
  15. $nextRankLimit = $row['posts']; //i jej limit
  16.  
  17. //oblliczenia wykonaj sobie sam
  18. ?>
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.06.2025 - 03:48