|
|
|
| Здравствуй вот я использую вот такой программный код (дал мне его хеопс)
<?php
if(empty($_REQUEST["start"])) $_REQUEST["start"] = 1;
$pnumber = 10;
$query = mysql_query("select * from links where id_catalog=$_REQUEST[id] order by vot desc limit $_REQUEST[start], $pnumber");
$row = mysql_fetch_object($query);
$tot = mysql_query("select * from links");
$total = mysql_num_rows($tot);
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
echo "<center>";
for($i = 1; $i<=$number; $i++)
{
if($number == $i)
{
if($_REQUEST["start"] == $i)
echo "<font class='menu'>$i ";
else
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>$i</a> ";
}
else
{
if($_REQUEST["start"] == $i)
echo "<font class='menu'>$i ";
else
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>$i</a> ";
}
}
?>
|
Все работает но, допустим у меня в базе 26 ссылок , на каждой странице показоваеца по 10 ссылок то тогда формируеца 3 ссылки (1 2 3) то я нажимаю на первую, показываеца первые 10 ссылок, потом нажимаю на вторую показываеца следущие 10 ссылок и когда я нажимаю на третию то мне показываеца последнии 10 ссылок а мне хочеца чтобу показывалось последнии 6
Как можно такое зделать?? Нармально я вырозился?? :) | |
|
|
|
|
|
|
|
для: Адоп Акробат
(11.10.2004 в 06:35)
| | Хм... с запросами явно что-то не чисто, вместо ограничения
limit $_REQUEST[start], $pnumber
|
явно должно быть
limit $_REQUEST[start]*$pnumber, $pnumber
|
а вместо
должно быть
select count(*) from links
|
| |
|
|
|
|
|
|
|
для: cheops
(11.10.2004 в 10:27)
| | Хеопс я зделал вот так
if(empty($_REQUEST["start"])) $_REQUEST["start"] = 0;
$pnumber = 10;
$query = mysql_query("select * from links where id_catalog=$_REQUEST[id] order by vot desc limit ".$_REQUEST[start]*$pnumber.", $pnumber");
|
но чота не получаеца
если старт равняеца нулю то он показывает последние 6 ссылок ?? | |
|
|
|
|
|
|
|
для: Адоп Акробат
(11.10.2004 в 18:05)
| | А если эхой вывести переменную $query в окно браузера - как выглядит запрос?
| |
|
|
|
|
|
|
|
для: cheops
(11.10.2004 в 23:01)
| | Как? он пишет Resource id #10 | |
|
|
|
|
|
|
|
для: Адоп Акробат
(12.10.2004 в 01:29)
| | Да, он так и должен писать, я имел ввиду выделить запрос в отдельную переменную и вывести её с подставленными занчениями:
<?php
$quer = "select * from links where id_catalog=$_REQUEST[id] order by vot desc limit ".
$_REQUEST[start]*$pnumber.", $pnumber";
echo $quer;
$query = mysql_query($quer);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 11:40)
| | А чо мне с эти мделать? | |
|
|
|
|
|
|
|
для: Адоп Акробат
(12.10.2004 в 15:50)
| | :))) Просто поставить вместо вызова функции mysql_query, чтобы в окно браузера был выведен SQL-запрос, тогда можно будет его протестировать в консоли клиента mysql, кроме того будет сразу видно будет правильно он формируется или нет. | |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 15:54)
| | Вот чо он вывел (помойму не то)
select * from links where id_catalog=2 order by vot desc limit 10, 10
|
| |
|
|
|
|
|
|
|
для: Адоп Акробат
(12.10.2004 в 16:07)
| | А $_REQUEST["start"] точно нулю равен? Получается, что вроде как единице... | |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 16:10)
| | А почему тут вот $query = mysql_query("select * from links where id_catalog=$_REQUEST[id] order by vot desc limit ".$_REQUEST[start]*$pnumber.", $pnumber");
в $_REQUEST[start] start без кавычек? Разве так прокатывает в запросе? | |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 16:10)
| | Нет старт был равен нулю. Я поставел чтобы старт равнялся нулю и чота он ваще начел маица :(
Открываю страницу с ссылками там добавляюца 3ссылки и на каждую ссылку я могу нажать (и на первую тоже) Пишет вот это
select * from links where id_catalog=2 order by vot desc limit 0, 10
|
Кагда я нажимаю на первую страницу (1) то добавляюца 2 ссылки ани три.
и пишет
select * from links where id_catalog=2 order by vot desc limit 10, 10
|
А когда нажимаю на вторую ссылку то он ничо не показывает и пишет
select * from links where id_catalog=2 order by vot desc limit 20, 10
|
А у меня в базе только 16 ссылок.
to XPraptor
не, нармальна | |
|
|
|
|
|
|
|
для: Адоп Акробат
(11.10.2004 в 06:35)
| | Хеопс сматри я зделал вот так и работает но мне не нравица то что первая ссылка 0 потом 1... (0 1 2 3 4 ...)
if(empty($_REQUEST["start"])) $_REQUEST["start"] = 0;
$pnumber = 10;
$query = mysql_query("select * from links where id_catalog=$_REQUEST[id] order by vot desc limit ".$_REQUEST[start]*$pnumber.", $pnumber");
$row = mysql_fetch_object($query);
$total = mysql_query("select count(*) from links");
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number = 0) $number++;
echo "<center>";
for($i = 0; $i<=$number; $i++)
{
if($number == $i)
{
if($_REQUEST["start"] == $i)
echo "<font class='menu'>$i ";
else
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>$i</a> ";
}
else
{
if($_REQUEST["start"] == $i)
echo "<font class='menu'>$i ";
else
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>$i</a> ";
}
}
|
Как можно исправить что бы первая равнялась единицы ани нулю? | |
|
|
|
|
|
|
|
для: Адоп Акробат
(12.10.2004 в 18:29)
| | Ну... сылку
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>$i</a> ";
|
заменить на
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".($i + 1)." class='menu'>$i</a> ";
|
| |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 18:46)
| | ???
Чоты савсем нето? | |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 18:46)
| | Извиняюсь :))), поторопился...
следует
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>$i</a> ";
|
изменить на
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>".($i+1)."</a> ";
|
| |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 20:45)
| | Чота тоже не то показывает вот так (0 2 3) :) | |
|
|
|
|
автор: elenaki (13.10.2004 в 10:29) |
|
|
для: Адоп Акробат
(13.10.2004 в 02:28)
| | сделай еще одну переменную - j, которая будет равна i+1 и не мучайся | |
|
|
|
|
|
|
|
для: Адоп Акробат
(13.10.2004 в 02:28)
| | Хм... я почему он первый раз 2 прибавляет, а второй 1? | |
|
|
|
|
|
|
|
для: cheops
(13.10.2004 в 11:00)
| | Потому что у меня i=0,I<=$number,I++ | |
|
|
|
|
|
|
|
для: Адоп Акробат
(13.10.2004 в 14:20)
| | Хеопс чота я незнаю чота ваще странно то делает чо нада то не делает
Я прекрепил этот фаил и с установкоя базы данных если не трудно :( | |
|
|
|
|
|
|
|
для: Адоп Акробат
(13.10.2004 в 19:37)
| | Ну всё-равно через 0 цикл проходит... а... вы в обоих местах поменяли ссылки?
for($i = 0; $i<=$number; $i++)
{
if($number == $i)
{
if($_REQUEST["start"] == $i)
echo "<font class='menu'>".($i+1)." ";
else
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>".($i+1)."</a> ";
}
else
{
if($_REQUEST["start"] == $i)
echo "<font class='menu'>".($i+1)." ";
else
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>".($i+1)."</a> ";
}
}
|
| |
|
|
|
|
|
|
|
для: cheops
(13.10.2004 в 22:46)
| | Хеопс а вот в этом коде точто все правельно??
Сматрите чо он делает, кагда я нахажусь на первой странице то он показывает четыре ссылки (1 2 3 4) а должен три. Кагда я нажимаю на третью ссылку то он показыват три ссылки (1 2 3) а когда я нажимаю на четвертую ссылку то он ничо не показыват потому что столько ссылок нету :(
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
echo "<center>";
for($i = 1; $i<=$number; $i++)
{
if($number == $i)
{
if($_REQUEST["start"] == $i)
echo "<font class='menu'>$i ";
else
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>$i</a> ";
}
else
{
if($_REQUEST["start"] == $i)
echo "<font class='menu'>$i ";
else
echo "<a href=allinks.php?name=razdel&id=$_REQUEST[id]&start=".$i." class='menu'>$i</a> ";
}
}
|
А кстате получилось теперь он не с нуля показывает а с единице | |
|
|
|
|
|
|
|
для: Адоп Акробат
(14.10.2004 в 05:09)
| | Ап
Хеопс помоги пожалуста очень шужно :( | |
|
|
|
|
|
|
|
для: Адоп Акробат
(14.10.2004 в 17:04)
| | Если отсчёт теперь начинается с единицы, то условие цикла следует сменить с
<?php
for($i = 1; $i<=$number; $i++)
?>
|
на
<?php
for($i = 1; $i<$number; $i++)
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 17:07)
| | Чота совсем не получаеца :)
Ладна спасиба cheops | |
|
|
|
|
автор: roshen (21.10.2004 в 16:10) |
|
|
для: Адоп Акробат
(11.10.2004 в 06:35)
| | вот решение проблемы
вывод линков на странички с записями
<?
$count = 46 ;// кол-во записей в гостевой
$ipp=10; // кол-во записей на странице
//////////////////////////////////////
if (isset($p)) {
//если заходим с ссылки без определенной p ( р - номер страницы)
// то ссылка будет обрабатываться , будто мы зашли с ссылки линк.php?p=1
// то же самое , если мы пытаемся попасть на страницу 10 линк.php?p=10
// а у нас то такой нету, так как их всего то 5, то переходим на первую.
if ((($p-1) >= $count / $ipp ) or ($p<1))
$p = 1;
}
else $p = 1;
//////////////////////////////////////
echo "Страницы :"
for($j=0; $j<$count; $j++)
if(!($j % $ipp ))
if ($j/$ipp==$p-1)
echo ($j/$ipp+1)." · ";
else
printf ("<a href=\"%s?p=%s\"> %s </a> · "
,basename($PHP_SELF),($j/$ipp+1),($j/$ipp+1));
if ( $p > 1 )
echo "<a href=".basename($PHP_SELF)."?p=".($p-1).">ПРЕД</a> ·";
if ( $p < ($count/$ipp) )
echo " <a href=".basename($PHP_SELF)."?p=".($p+1).">СЛЕД</a> ·";
?>
|
рисуем сами отзывы из таблицы
$maxlim = $ipp;
$minlim = ($p-1)*$ipp;
$result = @mysql_query("SELECT * FROM моя_таблица LIMIT $minlim, $maxlim");
while($gb = @mysql_fetch_row($result)){
//рисуем сами отзывы из таблицы как хотим
}
|
[поправлено модератором] | |
|
|
|
|
|
|
|
для: roshen
(21.10.2004 в 16:10)
| | Чота я разабраца не могу :( | |
|
|
|