Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]Jak sprawdzić w jakim przedziela zawiera się liczba oraz jej %
Forum PHP.pl > Forum > Przedszkole
szczabik
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 %
Crozin
  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. ?>
szczabik
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
mike
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. ?>
szczabik
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ć
Crozin
  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. ?>
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.