Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Wyświetlanie więcej niż 20 wyników z tabeli mysql na nowej stronie.


Przejdź do rozwiązania Rozwiązane przez Macsch15,

Rekomendowane odpowiedzi

Witam, zacząłem pisać Panel Gracza wbudowany w IPB. Jednakże mam pewien problem ponieważ serwer ma ponad 15 tysięcy kont a Ja chciałbym wyświetlić tylko 20 na jednej stronie wiem że jest możliwość stronowania wyników z MySQL jednakże nie wiem jak tego dokonać.

 

Pozdrawiam, Jakub.

Nothing is impossible.

Odnośnik do komentarza
Udostępnij na innych stronach

skorzystałem z tej dokumentacji, jednakże error pojawia się taki:
 

Fatal error: Call to a member function buildAndFetch() on a non-object in /var/www/admin/applications_addon/other/panel/sources/members.php on line 36

 

a linijka 36 wygląda tak:

$count = $this->DB->buildAndFetch( array( 'select' => 'id, Nick, Registred, Admin, ModPlayer, UNIX_TIMESTAMP(`Vip`) AS czas_unix', 'from' => 'p_Players', 'where' => 'id!=0') );

 

nie rozumiem gdzie leży błąd, zapytanie wygląda prawidłowo.

Nothing is impossible.

Odnośnik do komentarza
Udostępnij na innych stronach

$this->DB->build( array( 'select' => 'id, Nick, Registred, Admin, ModPlayer, UNIX_TIMESTAMP(`Vip`) AS czas_unix', 'from' => 'p_Players', 'where' => 'id!=0', 'order' => 'Registred desc', 'limit' => array( $perpage )));
$this->DB->execute();

Nothing is impossible.

Odnośnik do komentarza
Udostępnij na innych stronach

ah, wybacz.

 

public function __construct( ipsRegistry $registry){
        $panelClass = IPSLib::loadLibrary( IPSLib::getAppDir( 'panel' ) . '/sources/panel.php', 'panel' );
        $this->panel = new $panelClass($registry);
        $this->registry = $registry;
        $this->DB = $this->registry->DB();
        $this->member = $this->registry->member();
        $this->memberData = $this->registry->member()->fetchMemberData();
        $this->request = $this->registry->fetchRequest();
        $this->settings = $this->registry->fetchSettings();
        }

hm, dziwne. Miałem zakomentowane $this->DB = $this->reigstry->DB();, nie przypominam Sobie żebym to komentował. Tak czy inaczej, Wystąpił problem z bazą danych gdy odkomentowałem $this->DB = $this->reigstry->DB();

Nothing is impossible.

Odnośnik do komentarza
Udostępnij na innych stronach

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Date: Sat, 15 Aug 2015 12:23:53 +0000
 Error: 1146 - Table 'psz22.p_Players' doesn't exist
 IP Address: 2.243.184.27 - /index.php?app=panel&app=panel&module=game&do=members
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 mySQL query error: SELECT id, Nick, Registred, Admin, ModPlayer, UNIX_TIMESTAMP(`Vip`) AS czas_unix FROM p_Players WHERE id!=0
 .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
 | File                                                                       | Function                                                                      | Line No.          |
 |----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
 | admin/applications_addon/other/panel/modules_public/game/game.php          | [members].getOutput                                                           | 34                |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
 | admin/sources/base/ipsController.php                                       | [public_panel_game_game].doExecute                                            | 306               |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

wysyła zapytanie nie do tej bazy co trzeba, zamiast do bazy serwera to do bazy forum.

Edytowane przez jCoding

Nothing is impossible.

Odnośnik do komentarza
Udostępnij na innych stronach

to wytłumacz mi jedno, dlaczego te zapytanie:
 

                $this->DB->build( array( 'select' => 'id, Nick, Registred, Admin, ModPlayer, UNIX_TIMESTAMP(`Vip`) AS czas_unix', 'from' => 'p_Players', 'where' => 'id!=0', 'order' => 'Registred desc', 'limit' => array( $perpage )));
                $this->DB->execute();

odwołuje się do bazy serwera o nazwie 2samp.p_Players

 

a te zaś:

 

// Count
                $count = $this->DB->buildAndFetch( array( 'select'    => 'id, Nick, Registred, Admin, ModPlayer, UNIX_TIMESTAMP(`Vip`) AS czas_unix', 'from' => 'p_Players', 'where' => 'id!=0') );

 

odwołuje się do bazy forum o nazwie psz22.p_Players ?

Edytowane przez jCoding

Nothing is impossible.

Odnośnik do komentarza
Udostępnij na innych stronach

to jest bardzo skomplikowane, bo panel łączy się z bazą dzięki ustawieniom w ACP które zaś wyglądają tak:

 

public function ConnectMySQL(){
        $password = str_rot13($this->settings['panel_sqlpass']);
        $password = base64_decode($password);
        
        $this->registry->dbFunctions()->setDB('mysql', 'acc',array(
        'sql_database' => $this->settings['pg_sql_database'],         'sql_user' => $this->settings['pg_sql_user'],
        'sql_pass' => $this->settings['pg_sql_password'],
        'sql_host' => $this->settings['pg_sql_host'],
        'sql_tbl_prefix' => '', ));
    }

Nothing is impossible.

Odnośnik do komentarza
Udostępnij na innych stronach

zmieniłem zapytania z

 

$count = $this->DB->buildAndFetch( array( 'select' => 'count(*) as count, id, Nick, Registred, Admin, ModTime', 'from' => 'p_Players', 'where' => 'id!=0' ) );

 

na

 

$count = $this->registry->DB('acc')->buildAndFetch( array( 'select' => 'count(*) as count, id, Nick, Registred, Admin, ModTime', 'from' => 'p_Players', 'where' => 'id!=0' ) );

 

i problem zniknął lecz nie pokazuje ilości stron ani możlwiości przejścia na dalsze strony, po prostu tego nie ma.

Nothing is impossible.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.