[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не передается GET параметр! Помогите пожалуйста!
paulpozd
Господа профессионалы. Если Вам не трудно ответить на вопрос, буду очень признателен!!
Пытаюсь постраничную навигацию сделать, а параметр посредством $_GET не могу подцепить и все тут. Весь день просидел. Весь инет проглядел. Все попробовал. Не работает. Подскажите, что в этом коде не так. Основная непонятка именно почему параметр $page всегда равен 1. Сама навигация начинается с кода "if ( isset($_GET['page']) )"
<?


include $DOCUMENT_ROOT."/core/config.php";
dbc();

$bsel_an=mysql_query("SELECT count(*) FROM messages where ob_cat=$caid");
while($an=mysql_fetch_array($bsel_an)) { $bit=$an["count(*)"]; }
$maxThread = 500;
$totaltexts="$bit";
$totalPages = ceil( $totaltexts / $maxThread );




$catsql="SELECT * FROM categories where id='$caid'";
$sel_catsql=mysql_query("$catsql");
while($an=mysql_fetch_array($sel_catsql)) {
$categoryname=$an["catname"];
}



$ptitle="$categoryname";
include $DOCUMENT_ROOT."/templates/top.php";



echo "<table width=100%><tr><td valign=top width=240>";

require_once('google_ads_left_top.php');

include "leftmenu.php";
echo "</td><td width=10></td><td valign=top>";

$sql65z="SELECT * FROM categories where id='$caid'";
$sel_an65z=mysql_query("$sql65z");
while($an=mysql_fetch_array($sel_an65z)) {
$acatname=$an["catname"];
$acatdesc=$an["catdesc"];

//$acatdesc = str_replace ("[CITY]", $afcity_name, $acatdesc);

echo "<div class=info><h1>$acatname</h1><br><br>";
echo "<h4>$acatdesc</h4></div><p>";

}

if ( isset($_GET['page']) )
{
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
}
else
{
$page = 1;
}

echo "<h4>$page</h4>";

$nums = 200;

$query = "SELECT COUNT(*) AS 'counter'
FROM messages where ob_cat=
$caid";
$sql = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($sql);

$elements = $row['counter'];

$pages = ceil($elements/$nums);


if ($page < 1) {
$page = 1;
}
elseif ($page > $pages) {
$page = $pages;
}

$start = ($page-1)*$nums;

if ($start < 0) $start = 0;

$query = "SELECT *
FROM messages
where ob_cat=
$caid
order by ob_id DESC LIMIT {$start}, {$nums}";
$sql = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_array($sql)) {
$ob_id=$row["ob_id"];
$ob_author=$row["ob_author"];
$ob_phone=$row["ob_phone"];
$ob_email=$row["ob_email"];
$ob_topic=$row["ob_topic"];
$ob_datetime=$row["ob_datetime"];
$ob_cat=$row["ob_cat"];
$ob_desc=$row["ob_desc"];




echo "<table width=100% cellspacing=0 cellpadding=0><tr><td valign=top width=110>";
$fname="$homepath/images/$ob_id/pre1.jpg";
if (file_exists($fname)) {
echo "<a href=/images/$ob_id/1.jpg rel=\"lightbox\"><img src=/images/$ob_id/pre1.jpg alt=\"$ob_author\" title=\"$ob_author\" border=0></a><br><br>";
} else {
echo "<a href=/$ob_id.html><img src=/images/flat.png alt=\"$ob_topic\" title=\"$ob_topic\" border=0 width=100 height=100></a><br><br>";
}



$sql121c="SELECT * FROM categories where id=$ob_cat";
$sel_an121c=mysql_query("$sql121c");
while($an=mysql_fetch_array($sel_an121c)) {
$catnamec=$an["catname"];
}
echo "</td><td valign=top>
<a href=/
$ob_id.html title='$ob_author' class=ob_topic>$ob_topic</a><br>
Категория: <strong><a href=/category/
$ob_cat class=citylink>$catnamec</a></strong><br>
<ul>

$ob_desc
</ul>
</td></tr></table>
<hr size=1>"
;


}

$neighbours = 6;

$left_neighbour = $page - $neighbours;
if ($left_neighbour < 1) $left_neighbour = 1;

$right_neighbour = $page + $neighbours;
if ($right_neighbour > $pages) $right_neighbour = $pages;




if ($page> 1)
{
print ' <a href="?page=1">Начало</a> ... <a href="?page=' . ($page-1) . '">Назад</a> ';
}

if ($page == 1)
{
print ' Начало ... Назад ';
}

for ($i=$left_neighbour; $i<=$right_neighbour; $i++)
{
if ($i != $page)
{
print '<a href="?page=' . $i . '">' . $i . '</a> ';
}
else
{
print ' <b>' . $i . '</b> ';
}
}


if ($page < $pages)
{
print '<a href="?page=' . ($page+1) . '">Вперед</a> ... <a href="?page=' . $pages . '">Конец</a>';
}

if ($page == $pages)
{
print ' Вперед ... Конец ';
}

?>

</td></tr></table>




<?
include $DOCUMENT_ROOT."/templates/bottom.php";
?>






Спустя 9 минут, 7 секунд (6.10.2010 - 13:58) inpost написал(а):
paulpozd
Обычная проверка поможет. В самом начале введи: echo $_GET['page']; А в браузере глянуть, как пишется ссылка сама, правильно ли? Она должна в виде быть: lalala.php?page=2

Спустя 3 минуты, 47 секунд (6.10.2010 - 14:02) arvitaly написал(а):
А чему равно $row['counter'] ?

Спустя 7 минут, 10 секунд (6.10.2010 - 14:09) paulpozd написал(а):
Цитата (inpost @ 6.10.2010 - 10:58)
paulpozd
Обычная проверка поможет. В самом начале введи: echo $_GET['page']; А в браузере глянуть, как пишется ссылка сама, правильно ли? Она должна в виде быть: lalala.php?page=2

именно так и пишется. Просто у меня уже навигационные кнопки есть и когда на них навожу ссылка так и формируется lalala.php?page=2 lalala.php?page=3 и т.д..

Спустя 2 минуты, 4 секунды (6.10.2010 - 14:11) inpost написал(а):
paulpozd
Если обе вещи прошли нормально, в коде накосячил, где-то обнуление стоит. Тут лучше всего где-то по середине написать: exit($page); и идти дальше от этой точки, как бы проверяя весь скрипт до этого места.

Спустя 2 минуты, 25 секунд (6.10.2010 - 14:14) arvitaly написал(а):
Цитата
А чему равно $row['counter'] ?


Если число записей меньше 200 - ваша $page всегда будет равна 1


Цитата
Если обе вещи прошли нормально, в коде накосячил, где-то обнуление стоит. Тут лучше всего где-то по середине написать: exit($page); и идти дальше от этой точки, как бы проверяя весь скрипт до этого места.


Или воспользоваться нормальным дебагером

Спустя 38 секунд (6.10.2010 - 14:15) paulpozd написал(а):
Цитата (arvitaly @ 6.10.2010 - 11:02)
А чему равно $row['counter'] ?

Равно 887.

Спустя 3 минуты, 45 секунд (6.10.2010 - 14:18) arvitaly написал(а):
<?php

if ( isset($_GET['page']) )
{
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
}
else
{
$page = 1;
}

$nums = 200;

$elements=887;


$pages = ceil($elements/$nums);

if ($page < 1) {
$page = 1;
}
elseif ($page > $pages) {
$page = $pages;
}

echo $page;



?>


А этот код что у вас выдает? Только гет не забудьте передать

Спустя 2 минуты, 41 секунда (6.10.2010 - 14:21) inpost написал(а):
if ($page < 1) { $page = 1;} - Может тут не ($page < 1) , а PAGES???

Спустя 6 минут, 49 секунд (6.10.2010 - 14:28) paulpozd написал(а):
Цитата (arvitaly @ 6.10.2010 - 11:18)

А этот код что у вас выдает? Только гет не забудьте передать

Если передаю параметры до 5 включительно(1,2,3,4,5), то выдает именно то, что передал. Все что больше 5 превращается в 5.

Спустя 3 минуты, 21 секунда (6.10.2010 - 14:31) arvitaly написал(а):
Цитата
Если передаю параметры до 5 включительно(1,2,3,4,5), то выдает именно то, что передал. Все что больше 5 превращается в 5.


Ну так и должно быть разве нет? 200 элементов на странице, 887 элементов всего. 5 страниц

Спустя 1 минута, 2 секунды (6.10.2010 - 14:32) paulpozd написал(а):
Цитата (arvitaly @ 6.10.2010 - 11:31)
Цитата
Если передаю параметры до 5 включительно(1,2,3,4,5), то выдает именно то, что передал. Все что больше 5 превращается в 5.


Ну так и должно быть разве нет? 200 элементов на странице, 887 элементов всего. 5 страниц

Да. Так и должно быть. А Вы что то поменяли в коде? Смотрю и не могу понять ... smile.gif

Спустя 2 минуты, 59 секунд (6.10.2010 - 14:35) inpost написал(а):
Что-то мои коментарии вечно пропускают...
if ( isset($_GET['page']) ){ $page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;}
else{ $page = 1;}
$nums = 200;$elements=887;$pages = ceil($elements/$nums);
if ($page < 1) { $page = 1;}

Чисто логически, во втором варианте должно быть pages, а не page. Хотя не вникал в суть скрипта полностью

Спустя 1 минута, 25 секунд (6.10.2010 - 14:37) paulpozd написал(а):
Цитата (inpost @ 6.10.2010 - 11:35)
Что-то мои коментарии вечно пропускают...

Прошу прощения. Еще не успел попробовать. Там у меня хостинг не самый быстрый. Сейчас как раз пытаюсь... Спасибо большое за участие...

Спустя 17 секунд (6.10.2010 - 14:37) arvitaly написал(а):
Цитата
if ($page < 1) { $page = 1;} - Может тут не ($page < 1) , а PAGES???


Да нет тут все нормально (ну логика ТС прослеживается)

Спустя 1 минута, 55 секунд (6.10.2010 - 14:39) inpost написал(а):
arvitaly
Прочитай предыдущих комментарий, я там выделил красным логику.

Спустя 10 минут, 5 секунд (6.10.2010 - 14:49) arvitaly написал(а):
Цитата
Да. Так и должно быть. А Вы что то поменяли в коде? Смотрю и не могу понять ...


Нет, ничего не менял

Спустя 1 минута, 14 секунд (6.10.2010 - 14:50) paulpozd написал(а):
Цитата (inpost @ 6.10.2010 - 11:35)
Что-то мои коментарии вечно пропускают...
if ( isset($_GET['page']) ){    $page = (int)$_GET['page'];   
if ( $page < 1 ) $page = 1;}
else{    $page = 1;}
$nums = 200;$elements=887;$pages = ceil($elements/$nums);
if ($page < 1) {    $page = 1;}

Чисто логически, во втором варианте должно быть pages, а не page. Хотя не вникал в суть скрипта полностью

Попробовал, но не помогло.
Этот момент просто не позволит юзеру передать не существующие номера страниц. Тут именно проверка на это.

Спустя 1 минута, 18 секунд (6.10.2010 - 14:51) inpost написал(а):
Дважды? Первый раз она проверяет, меньше ли page; Второй же раз - опять проверяет ТОЖЕ САМОЕ!!!
$pages = ceil($elements/$nums); - тут ты получаешь значение, допустим 0,6, который может быть округлён до 0, потом переводишь в 1 этим скриптом:
if ($page < 1) { $page = 1;} - хотя эта переменная называлась как pages, а не page!

Спустя 1 минута, 57 секунд (6.10.2010 - 14:53) paulpozd написал(а):
Цитата (inpost @ 6.10.2010 - 11:51)
Дважды? Первый раз она проверяет, меньше ли page; Второй же раз - опять проверяет ТОЖЕ САМОЕ!!!
$pages = ceil($elements/$nums); - тут ты получаешь значение, допустим 0,6, который может быть округлён до 0, потом переводишь в 1 этим скриптом:
if ($page < 1) { $page = 1;} - хотя эта переменная называлась как pages, а не page!

Действительо!!.... Не пойму зачем я ее второй раз впендюрил...

Спустя 47 секунд (6.10.2010 - 14:54) inpost написал(а):
paulpozd
Я подправил коментарий предыдущий, перечитай.

Спустя 1 минута, 48 секунд (6.10.2010 - 14:56) paulpozd написал(а):
Оставлю именно вариант с pages, а не page. Видимо ошибся. Но в данном случае pages больше 0.

Спустя 49 секунд (6.10.2010 - 14:57) paulpozd написал(а):
Цитата (inpost @ 6.10.2010 - 11:54)
paulpozd
Я подправил коментарий предыдущий, перечитай.

момент

Спустя 2 минуты, 31 секунда (6.10.2010 - 14:59) arvitaly написал(а):
Цитата
тут ты получаешь значение, допустим 0,6, который может быть округлён до 0


До 1

Спустя 6 минут, 32 секунды (6.10.2010 - 15:06) paulpozd написал(а):
Вторую проверку сделал так

[/php]if ($pages < 1) {
$pages = 1;
}
elseif ($page > $pages) {
$page = $pages;
}[php]
но ничего не изменилось. Хотя наверное и не должно было для данной ситуации.
Главное в адресной строке http:///......ru/category/1.html?page=3 красуется, а echo "<h4>$page</h4>"; дает 1. Ох беда, беда.

Спустя 5 минут, 21 секунда (6.10.2010 - 15:11) arvitaly написал(а):
Так, сделайте вот так, вот это


if ( isset($_GET['page']) )
{
$page = (int)$_GET['page'];

if ( $page < 1 ) $page = 1;
}
else
{
$page = 1;
}

echo "<h4>$page</h4>";


замените на

echo '<p>Гетпэйдж=' . $_GET['page'] . '</p>';
if ( isset($_GET['page']) )
{
$page = (int)$_GET['page'];
echo '<p>Тут пэйдж=' . $page . '</p>';
if ( $page < 1 ) $page = 1;
echo '<p>Тут пэйдж=' . $page . '</p>';
}
else
{
$page = 1;
}

echo "<h4>$page</h4>";
exit;


Спустя 4 минуты, 17 секунд (6.10.2010 - 15:15) paulpozd написал(а):
момент

Спустя 5 минут, 38 секунд (6.10.2010 - 15:21) paulpozd написал(а):
Вставил Ваш код и какое бы число я не передавал результат один:
Гетпэйдж=

1

и сооветственно выходит.
То есть почему то NULL на входе получается.

Спустя 2 часа, 42 секунды (6.10.2010 - 17:22) arvitaly написал(а):
Ну вот значит гет не передается, может там русские буквы или еще чего не знаю даже, можно скрин и сам файл скрипта?

Спустя 20 минут, 53 секунды (6.10.2010 - 17:43) paulpozd написал(а):
Цитата (arvitaly @ 6.10.2010 - 14:22)
Ну вот значит гет не передается, может там русские буквы или еще чего не знаю даже, можно скрин и сам файл скрипта?

Не знаю почему, но этот форум у меня был не доступен до настоящего момента. Это только у меня?
arvitaly, подскажите, скрин чего необходим? Результата отаботки скрипта? Я просто могу URL дать. Так наверное проще? Лучше в личку? Спасибо большое за Ваше время!!

Спустя 1 час, 33 минуты, 31 секунда (6.10.2010 - 19:16) paulpozd написал(а):
arvitaly, отписал Вам в личку. Спасибо!

Спустя 20 часов, 28 минут, 44 секунды (7.10.2010 - 15:45) paulpozd написал(а):
О великий PHP-программист Arvitaly!!! user posted image Заработало!!!! user posted image Вы все правильно сказали!! user posted image Как Вас отблагодарить - даже не знаю... Огромное спасибо!! Неужели из-за этой мелочи такие проблемы??? Что же это за [L,QSA] в .htaccess?
Наконец то!!
Спасибо большое еще раз!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.