|
|
|
| Нем огу понять ошибку постраничной навигации, выводит только одну страницу и все
<?
$page=$_GET['page'];
$view_case=6;
$start=$page*$view_case;
$sql="SELECT * FROM tovar WHERE id_podcat='2' LIMIT $start,$view_case";
$ires=mysql_query($sql);
$count_page=ceil(mysql_num_rows($ires)/$view_case);
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr valign='top'>";
$i=0;
while($ires_result=mysql_fetch_array($ires)){
$i++;
echo '<td class="catalog" valign="top">';
echo '<div id="name" align="center">'.$ires_result[title].' '.$ires_result[articul].'</div>';
echo '<div align="center"><img src="/images/small/'.$ires_result[articul].'.jpg" align="left"></div>';
echo ''.$ires_result[des].'';
echo '<p>Состояние: <span id="sost">'.$ires_result[name_category].'</span></p>';
echo '<p><a href="mailto:info@luxwatch.ru?subject='.$ires_result[title].'"><img src="img/buy.gif"></a></p>';
echo '</td>';
if(is_integer($i/3))
echo '</tr><tr>';//если нужно по больше записей в строки, измини цыфру 3.
}
echo '</table>';
for($i=1;$i<=$count_page;$i++){
echo 'Страницы: <a href="catalog.html?page='.$i.'">'.$i.'</a>';
}
?>
|
| |
|
|
|
|
|
|
|
для: scva
(02.04.2010 в 12:00)
| | >for($i=1;$i<=$count_page;$i++){
> echo 'Страницы: <a href="catalog.html?page='.$i.'">'.$i.'</a>';
попробуй для начала свою страничку catalog.HTML переименовать в catalog.PHP.
Если не поможет-опиши проблему поподробнее.. | |
|
|
|
|
|
|
|
для: Gono
(04.04.2010 в 10:51)
| | переименовал, не помогло
Проблем в том что в базе более 1000 товара а выводи только одну страницу с тем количестов товара который указан в переменной $view_case, в данно случаи выводит только 6 штук | |
|
|
|
|
|
|
|
для: scva
(05.04.2010 в 13:21)
| | попробуйте значение $start поменять на число отличное от 0 и посмотрите, что получится, я думаю, что ни чего. у Вас ни где не идёт подсчёт всего кол-ва товаров в базе.
прочитаейте http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=72981&page=1 может это Вам поможет в решении проблемы | |
|
|
|
|
|
|
|
для: Slo_Nik
(05.04.2010 в 16:21)
| | а это разве не подсчет
$count_page=ceil(mysql_num_rows($ires)/$view_case);
|
эта ссылка моей темы
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=72981&page=1
|
| |
|
|
|
|
|
|
|
для: scva
(06.04.2010 в 11:01)
| | >эта ссылка моей темы
>http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=72981&page=1
извините, запарился
вот ссылка по Вашей теме
http://www.softtime.ru/info/articlephp.php?id_article=33 | |
|
|
|
|
|
|
|
для: Slo_Nik
(06.04.2010 в 12:21)
| | вообщем пробывал так и не получилось на моем коде, можете показать как это сделать на моем коде | |
|
|
|
|
|
|
|
для: scva
(07.04.2010 в 12:52)
| | и что именно у Вас не получилось, покажите | |
|
|
|
|
|
|
|
для: Slo_Nik
(07.04.2010 в 18:44)
| | ничего не получается, не могу понять принцип, пробывал много раз, итог один и тот же | |
|
|
|
|
|
|
|
для: scva
(09.04.2010 в 10:07)
| |
ceil(mysql_num_rows($ires)/$view_case);
|
после запроса
$sql="SELECT * FROM tovar WHERE id_podcat='2' LIMIT $start,$view_case";
|
выведет $view_case-записей максимум
попробуйте по другому
"SELECT SQL_CALC_FOUND_ROWS * FROM tovar WHERE id_podcat='2' LIMIT $start,$view_case";
|
сразу после него делаете второй запрос
и узнаете количество записей по вашему запросу без учета лимита, ну а дальше - пошло, поехало | |
|
|
|
|
|
|
|
для: scva
(09.04.2010 в 10:07)
| | а показать Вы не хотите, то что у Вас не получается? | |
|
|
|
|
|
|
|
для: Slo_Nik
(10.04.2010 в 01:33)
| | вообщем вот что получилось у меня, и ничего не выводит, пустая траница
<?
$num = 15;
$page = $_GET['page'];
$result = mysql_query("SELECT COUNT(*) FROM tovar");
$posts = mysql_fetch_row($result);
$total = intval(($posts - 1) / $num) + 1;
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT `id`,`title`,`articul`,`name_category` FROM `tovar` WHERE id_podcat='2' LIMIT $start, $num");
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr valign='top'>";
$i=0;
while ( $postrow[] = mysql_fetch_array($result))
{
$i++;
echo '<td class="catalog" valign="top">';
echo '<div id="name" align="center">'.$postrow['title'].'</div>';
echo '<div align="center"><a href="watch.html?id='.$postrow['id'].'"><img src="/images/small/'.$postrow['articul'].'.jpg" align="left"></a></div>';
echo '<p>Артикул: <a href="watch.html?id='.$postrow['id'].'" id="sost">'.$postrow['articul'].'</a>';
echo '<p>Состояние: <span id="sost">'.$postrow['name_category'].'</span></p>';
echo '<p><a href="mailto:info@sait.ru?subject='.$postrow['title'].'"><img src="img/buy.gif"></a></p>';
echo '</td>';
if(is_integer($i/3))
echo '</tr><tr>';
}
echo '</table>';
?>
|
| |
|
|
|
|
|
|
|
для: scva
(13.04.2010 в 11:22)
| | Должны выводиться диагностические сообщения об ошибках.
Видимо, они у Вас заблокированы.
Должны потому, что ошибки у Вас в скрипте есть. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2010 в 12:18)
| | ругается на эту строку
$total = intval(($posts - 1) / $num) + 1;
|
| |
|
|
|
|
|
|
|
для: scva
(13.04.2010 в 12:31)
| | весь код с выводом постранично у меня выглядит так
<?
$num = 15;
$page = $_GET['page'];
$result = mysql_query("SELECT COUNT(*) FROM tovar");
$posts = mysql_fetch_row($result);
$total = intval(($posts - 1) / $num) + 1;
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT `id`,`title`,`articul`,`name_category` FROM `tovar` WHERE id_podcat='2' LIMIT $start, $num");
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr valign='top'>";
$i=0;
while ( $postrow[] = mysql_fetch_array($result))
{
$i++;
echo '<td class="catalog" valign="top">';
echo '<div id="name" align="center">'.$postrow['title'].'</div>';
echo '<div align="center"><a href="watch.html?id='.$postrow['id'].'"><img src="/images/small/'.$postrow['articul'].'.jpg" align="left"></a></div>';
echo '<p>Артикул: <a href="watch.html?id='.$postrow['id'].'" id="sost">'.$postrow['articul'].'</a>';
echo '<p>Состояние: <span id="sost">'.$postrow['name_category'].'</span></p>';
echo '<p><a href="mailto:info@luxwatch.ru?subject='.$postrow['title'].'"><img src="img/buy.gif"></a></p>';
echo '</td>';
if(is_integer($i/3))
echo '</tr><tr>';
}
echo '</table>';
if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
<a href= ./page?page='. ($page - 1) .'><</a> ';
if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
<a href= ./page?page=' .$total. '>>></a>';
if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
?>
|
пишет ошибку
$total = intval(($posts - 1) / $num) + 1;
| Fatal error: Unsupported operand types in | |
|
|
|
|
|
|
|
для: scva
(13.04.2010 в 12:31)
| | Теперь исправляйте.
Ошибка-то локализована. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2010 в 12:39)
| | честно говоря, не знаю как | |
|
|
|
|
|
|
|
для: scva
(13.04.2010 в 12:52)
| | Здрасти. А кто знает? Скрипт-то Ваш?
выводите значения переменных, использовванных в этой строке.
Выясняйте что в них не так и почему.
var_dump() в помощь. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2010 в 12:53)
| | проблему решил сделал ошибку в запросе, надо было так
$posts = mysql_numrows(mysql_query('select * from tovar')) or die('error!');
|
| |
|
|
|
|
|
|
|
для: scva
(13.04.2010 в 13:43)
| | боже, кошмар какой.
Чтобы выяснить количество строк, Вы не постеснялись всю таблицу из БД вытащить. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2010 в 13:51)
| | )))) а как упростить? просто id вытащить? | |
|
|
|
|
|
|
|
для: scva
(13.04.2010 в 14:03)
| | у Вас использовался запрос SELECT COUNT(*) FROM tovar
Вот его и применяйте. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2010 в 14:07)
| | смешно но при этом запросе не появляются список странц, выводится только 1 страница
не стал заморачиваться поставил
SELECT COUNT(id) FROM `tovar`
|
| |
|
|
|
|
|
|
|
для: scva
(13.04.2010 в 14:20)
| | >смешно но при этом запросе не появляются список странц, выводится только 1 страница
Это означает лишь то, что результат работы этого запроса Вы получаете неверно. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2010 в 14:26)
| | кажется нашел оптимальный вариант
$pole = mysql_query("SELECT COUNT( * ) FROM `tovar` WHERE id_podcat =2", $db) or die("error! Записей не найдено!");
list ($posts) = mysql_fetch_row($pole);
|
думая проще так массив не создаю, а только пременную
Или есть другое мнение? | |
|
|
|