Ich arbeite an einem Web-Projekt in PHP, die potenziell viele Benutzer haben könnte. Aus administrativer Sicht versuche ich, eine Tabelle mit Informationen über jeden Benutzer anzuzeigen, und da die Tabelle der Benutzer extrem groß werden kann, möchte ich die Seitennummerierung verwenden.wie man Paginierung erreicht HTML PHP-MySQL
Auf dem Backend, habe ich einen Dienst, der eine Grenze und einen Offset-Parameter erwartet, der verwendet wird, um die Datenbank für Datensätze innerhalb des geeigneten Bereichs abzufragen. Der Dienst gibt die Gesamtzahl der Datensätze in der Tabelle, zusammen mit den Aufzeichnungen die Abfrage passenden
public static function getUsersInfo($limit = 50, $offset=1) { $users_count = Users::count( array( "column" => "user_id" ) ); $users_info = array(); $users = Users::query() ->order('created_at') ->limit($limit, $offset) ->execute() ->toArray(); foreach ($users as $index => $user) { $users_info[$index]['user_id'] = $user['user_id']; $users_info[$index]['name'] = $user['first_name'] . " " . $user['last_name']; $users_info[$index] ['phone'] = $user['phone']; $users_info[$index] ['profile_image_url'] = $user['profile_image_url']; } $results = array( 'users_count' => $users_count, 'users_info' => $users_info ); return !empty($results) ? $results : false; }
auf dem Frontend, was ich möchte im Idealfall erreichen, hat die Navigation am unteren Ende der Tabelle angezeigt , mit den typischen vorherigen, nächsten Tasten und zusätzlich ein paar Zahlen, die dem Benutzer erlauben, schnell zu einer gewünschten Seite zu navigieren, wenn die Seitenzahl angezeigt wird. Dies ist, was ich bisher für den UsersController ohne Paginierung habe.
class UsersController extends ControllerBase { public function indexAction() { $usersObject = new Users(); $data = $usersObject->getUsers(); if ($data['status'] == Constants::SUCCESS) { $users = $data['data']['users_info']; $users_count = $data['data']['users_count']; $this->view->setVar('users', $users); } echo $this->view->render('admin/users'); } public function getUsersAction() { echo Pagination::create_links(15, 5, 1); } }
Ich habe keine Arbeit Paginierung noch, aber ich war eine gute Art und Weise zu denken wäre zu gehen, um eine Pagination
Bibliothek mit einer create_links
Funktion zu erstellen, die die
total_count
nehmen der Datensätze in der Datenbank, so weiß ich, wie viele Seiten erwartet werdenlimit
so weiß ich, wie viele Datensätze zu sammelncur_page
damit ich weiß, wo aus
Abrufen beginnen also, wenn diese Funktion mit den richtigen Parametern aufgerufen wird, würde es den HTML-Code erzeugen, um die Paginierung zu erreichen, und das wiederum kann dann zu der Ansicht geführt werden und angezeigt.
Ich habe das vorher noch nie gemacht, aber von den Forschungen, die ich bisher gemacht habe, scheint es, dass dies ein guter Weg ist, um es zu erreichen. Irgendwelche Ratschläge, Vorschläge oder irgendetwas wirklich in Bezug auf dieses würde sehr geschätzt werden.
google: http://code.tutsplus.com/tutorials/how-to-paginate-data-with-php--net-2928 –
Zeigen Sie uns etwas Code. – sensation