Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wyświetlaniem prawidłowej liczby
adi7
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2012

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


A ,więc. Skrypt pokazuje mi złą liczbę.

Np. Użytkownik zaprasza 1 osobe. W bazie wszystko ok. A teraz jak chce wyświetlić tak

nick / Liczba zaproszonych
to pokazuje

Użytkownik 0 zamiast 1 ;/

Jest to moja pierwsza modyfikacja i rozumiem ,że pełno rzeczy może być źle
Proszę o pomoc

  1. <?php
  2. define('IN_PHPBB', true);
  3. $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
  4. $phpEx = substr(strrchr(__FILE__, '.'), 1);
  5. include($phpbb_root_path . 'common.' . $phpEx);
  6. include($phpbb_root_path . '/includes/functions_display.' . $phpEx);
  7. // Start session management
  8. $user->session_begin();
  9. $auth->acl($user->data);
  10. $user->setup();
  11. if ($user->data['user_id'] == ANONYMOUS)
  12. {
  13. login_box('', $user->lang['LOGIN']);
  14. }
  15. //dane msql
  16.  
  17. //ob
  18.  
  19. //baza zapytanie
  20. $mysql= mysql_query('SELECT username,user_referrals FROM `phpbb_users` ORDER BY `phpbb_users`.`user_referrals` DESC LIMIT 10') or die('Błąd zapytania');
  21.  
  22.  
  23. if ($mysql > 0)
  24. $nick=mysql_fetch_row($mysql );
  25. $liczbazaproszen=mysql_fetch_row($mysql );
  26.  
  27. //tytul
  28. page_header('Toplista Zapraszających');
  29.  
  30.  
  31.  
  32.  
  33. /*
  34.   * prosty przykład przypisywania bloków zmiennych do szablonów
  35.   * To pozwoli Ci pokazać blok lub tabelę danych w szablonie
  36.   * jest to bardzo użyteczne dla takich rzeczy jak zapytania SQL do bazy danych i pokazywanie ich w szablonie.
  37.   */
  38.  
  39. {
  40. $template->assign_block_vars('toplista', array(
  41. 'NICK' => $nick[0],
  42. 'ZAPROSZONYCH' => $liczbazaproszen[1],
  43. ));
  44. }
  45. $template->set_filenames(array(
  46. 'body' => 'topinvite.html',
  47. ));
  48.  
  49. make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
  50. page_footer();
  51. ?>


Usunałem kodu połączenie z bazą

Plik template mam gotowy i jest dobrze. Tylko jak teraz poprawnie pokazać zmienną $liczbazaproszen[1]

Ten post edytował adi7 9.10.2012, 14:51:45
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przecież ty w zapytaniu nigdzie ale to nigdzie nie określasz o jakiego usera ci chodzi.... w związku powyższym zapytanie zwraca ci pierwszego lepszego.... zapytania nie czytają ci w myślach (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
adi7
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2012

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


Wiedziałem ,że błąd leży po mojej stronie (IMG:style_emoticons/default/smile.gif)

Dzięki za pomoc ,a mógłbyś mnie jakoś nakierować?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




...where....
Go to the top of the page
+Quote Post
adi7
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2012

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


Ehh. Jednak sobie chyba nie poradzę. Kompletnie nie wiem co dalej (IMG:style_emoticons/default/closedeyes.gif)

Po prostu. Chciałem mieć coś takiego i spróbowałem ,ale tak to jest jak się o czymś za mało wie (IMG:style_emoticons/default/happy.gif)

Ten post edytował adi7 9.10.2012, 16:40:24
Go to the top of the page
+Quote Post
redeemer
post
Post #6





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Nie rozumiem dlaczego rozdzieliłeś zmienne $nick i $liczbazaproszen, dwa razy iterujesz resource ($mysql), w związku z czym znajdują się w nich dane dwóch różnych użytkowników. Zrób jedną zmienną np:
  1. $userData=mysql_fetch_row($mysql );
zamiast:
  1. $nick=mysql_fetch_row($mysql );
  2. $liczbazaproszen=mysql_fetch_row($mysql );
Potem musisz $userData[0] i $userData[1] odpowiednio przekazać do funkcji assign_block_vars.

Jeżeli dalej coś nie tak, to zdebuguj to co się znajduje w $userData przed przekazaniem do szablonu, wykonaj zapytanie ręcznie i sprawdź jego wyniki.

PS. Zdajesz sobie sprawę, że Twoje zapytanie pobiera 10 użytkowników sortując je malejąca względem user_referrals a chcesz wyświetlać tylko jednego?
Go to the top of the page
+Quote Post
adi7
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2012

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


Cytat(redeemer @ 9.10.2012, 17:47:04 ) *
PS. Zdajesz sobie sprawę, że Twoje zapytanie pobiera 10 użytkowników sortując je malejąca względem user_referrals a chcesz wyświetlać tylko jednego?


Dziękuje. Działa. Co do tego zdania. To wiem ,że zapytanie wyświetla 10 tak chciałem ,ale do php to jest gorzej. Co zmienić by było wyświetlane 10?
Go to the top of the page
+Quote Post
abort
post
Post #8





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Cytat(adi7 @ 9.10.2012, 17:50:56 ) *
[...]To wiem ,że zapytanie wyświetla 10 tak chciałem ,ale do php to jest gorzej. Co zmienić by było wyświetlane 10?

Jak dla mnie to przy tak postawionym pytaniu odpowiedzią będzie: "nic nie trzeba zmieniać"...

Ten post edytował abort 9.10.2012, 21:09:38
Go to the top of the page
+Quote Post
adi7
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.10.2012

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


Coś trzeba (IMG:style_emoticons/default/smile.gif) Bo wyświetla tylko użytkownika z największą liczbą zaproszeń
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 - 14:19