2015-11-28 3 views
0

Я в настоящее время метода внутри моего «автомобиль класса», отображающего автомобиль:Pagination цикла Еогеаспа

 static function getCars(){ 
     $autos = DB::query("SELECT * FROM automoviles"); 
     $retorno = array(); 
     foreach($autos as $a){ 
      $automovil = automovil::fromDB($a->marca, $a->modelo, $a->version, $a->year, $a->usuario_id, $a->kilometraje, $a->info, 
         $a->hits, $a->cilindrada, $a->estado, $a->color, $a->categoria, $a->precio, $a->idAutomovil); 
      array_push($retorno, $automovil); 
     } 
     return $retorno; 
    } 

В моей index.php я вызов этой функции

foreach(car::getCars() as $a){ 

, что позволяет мне отобразите информацию таким образом (конечно, внутри foreach у меня есть огромный код с подробной информацией, которую я покажу.

enter image description here

Есть ли способ реализовать разбиение на страницы на эту вещь, чтобы я мог обрабатывать 8 автомобилей на страницу, а не показывать их все на одной странице?

+1

Вы используете какой-либо каркас? Я не уверен, что DB :: select есть? – codenut

ответ

0

Вы можете добавить $limit и $page параметр на вашей функции так, что он будет возвращать только максимум $limit числа элементов, начиная с $limit * $page (или будем называть его $offset). Вам также необходимо добавить функцию, чтобы получить общее количество строк для таблицы automoviles.

static function getCars($page = 0, $limit = 8){ 
    $offset = $limit * max(0, $page - 1); 

    //replace this with prepared statement 
    $autos = DB::query("SELECT * FROM automoviles LIMIT $offset, $limit"); 

    $retorno = array(); 

    foreach($autos as $a){ 
     $automovil = automovil::fromDB($a->marca, $a->modelo, $a->version, $a->year, $a->usuario_id, $a->kilometraje, $a->info, 
        $a->hits, $a->cilindrada, $a->estado, $a->color, $a->categoria, $a->precio, $a->idAutomovil); 
     array_push($retorno, $automovil); 
    } 
    return $retorno; 
} 

static function getTotal() 
{ 
    //query to get total number of rows in automoviles table 
} 

В вашем index.php это сделать:

foreach(car::getCars((isset($_GET['page']) ? $_GET['page'] : 1)) as $a){ 
    ... 
} 

и добавить ссылки разбивки на страницы.

$total = car::getTotal(); 

if($total > 8) { 
    for($i = 1; $i <= intval(ceil(1.0 * $total/$limit)); $i++) { 
     echo '<a href="index.php?page=' . $i . '">' . $i . '</a>; 
    } 
} 
+0

Мистер, ты гений, он отлично работает! –

Смежные вопросы