Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как решить проблему с постраничной навигацией... Как решить проблему с постраничной навиг 
:(
    Опции темы
devid134
Дата 22.7.2013, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.7.2013

Репутация: нет
Всего: нет



Вот страница которая выводится... жирным шрифтом показана постраничная навигация 

[PHP]<?php defined('ISHOP') or die('Accessc denied'); ?>

<div class="catalog-index">
<h1><img src="<?=TEMPLATE?>images/sale-sale.png" alt="Распродажа" /></h1>

<?php if($eyestoppers): ?>
<?php foreach($eyestoppers as $eyestopper): ?>
<div class="product-index"> 
<a href="?view=product&goods_id=<?=$eyestopper['goods_id']?>"><img class="product-img" src="<?=PRODUCTIMG?><?=$eyestopper['img']?>" alt="" /></a>
<h2><a href="?view=product&goods_id=<?=$eyestopper['goods_id']?>"><?=$eyestopper['name']?></a></h2>
<h6>Cоздана специально для крепких духом людей!<br /></h6>
<h3>Артикул: <span><?=$eyestopper['articul']?></span> </h3>
<p>Цена: <span><?=$eyestopper['price']?></span> руб.</p>
<a href="?view=addtocard&goods_id=<?=$eyestopper['goods_id']?>"><img class="addtocard-index" src="<?=TEMPLATE?>images/addcard-index.png" alt="Добавить в корзину" /></a>
</div>
<?php endforeach; ?>


<div class="clr"></div>
<?php if($pages_count > 1) pagination($page, $pages_count); ?>



<?php else: ?>
<p>Здесь товаров пока нет!</p>
<?php endif; ?>
<a name="nav"></a>

</div>[/PHP]


Это model.php этой страницы для постраничной навигации
[PHP]
/* === Получение кол-во товаров по категории SALE для навигации === */
function count_rows_sale($category){
$query = "(SELECT COUNT(goods_id) as count_rows
FROM goods 
WHERE sale = 2)
";
$res = mysql_query($query) or die (mysql_error());

while($row = mysql_fetch_assoc($res)){
if($row['count_rows']) $count_rows = $row['count_rows'];
}
return $count_rows; 
}

/* === Получение кол-во товаров по категории SALE для навигации === */
[/PHP]

Это model.php для продукции этой страницы

/* === Айстопперы - новинки, лидеры продаж, распродажа === */

function eyestopper($eyestopper){
$query = "SELECT goods_id, name, img, price, articul FROM goods 
WHERE visible='1' AND $eyestopper='1'";
$res = mysql_query($query) or die (mysql_error());
$eyestoppers = array();
while ($row = mysql_fetch_assoc($res)){
$eyestoppers[] = $row;
}
return $eyestoppers;
}
/* === Айстопперы - новинки, лидеры продаж, распродажа === */ 

Это controller.php для этой страницы
case('sale'):
// Распродажа 
$eyestoppers = eyestopper('sale');

// параметры для навигации
$perpage = 3; // кол-во товаров на страницу
if(isset($_GET['page'])){
$page = (int)$_GET['page'];
if($page < 1) $page = 1;
}else{
$page = 1;
}

$count_rows = count_rows_sale($category); // общее кол-во товаров

echo $count_rows;

$pages_count = ceil($count_rows / $perpage); // кол-во страниц
if(!$pages_count) $pages_count = 1; // минимум 1 страница
if($page > $pages_count) $page = $pages_count; // если запрошенная страница больше максимума
$start_pos = ($page - 1) * $perpage; // начальная позиция для запроса
break;

============================================================================================
выводятся страницы как надо и подсчет товаров на каждую станицу показано верно.

- Товаров показано и выводятся с базы данных - 31.

- По функции должно выводится по 3 товара на 1 страницу, т.е. он подсчитал 11 страниц -это все верно показано, с базы считывается верное кол-во товаров.

- ПРОБЛЕМА В ТОМ что на каждой странице выводятся все 31 товар,какую бы страницу из 11 не выбрал там все время 31 товар

Я знаю что нужно прописать LIMIT в model.php но как это сделать чтобы все получилось?
PM MAIL   Вверх
_zorn_
Дата 23.7.2013, 03:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Без подсветки читай свой код сам.
А так.
http://dev.mysql.com/doc/refman/5.0/en/select.html
Код

...
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
...

Код

SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15

Что тут не понятного ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.