|
|
|
| Постраничная навигация. Неработает скрипт. Вылетает ошибка в строке $page=$_GET['page']
Undefined index: page in D:\WebServer\home\localhost\www\Project2\onpage\1.php on line 10
Я так понимаю, что в значение $page незаписывается номер страницы.
Оригинал скрипта:
http://www.softtime.ru/info/articlephp.php?id_article=33
<?php
@mysql_connect( "localhost", "root", "") or die("Could not connect to MySQL server!");
@mysql_select_db("goodslv") or die("Could not select products database!");
$query = "SELECT * FROM goodlv";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
$num=5;
$page = $_GET['page'];
print("<br>".$page."<br>");
print($num_rows);
$total=$num_rows/$num;
$total=ceil($total);
print($total);
print($total);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM goodlv LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
$postrow=array();
while ( $postrow[] = mysql_fetch_array($result))
echo "<table>";
for($i = 0; $i < $num; $i++)
{
echo "<tr>
<td>".$postrow[$i]['Namelv']."</td>
<td>".$postrow[$i]['Nameru']."</td></tr>
<tr><td colspan=\"2\">".$postrow[$i]['Textlv']."</td></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 - 3 > 0) $page3left = " <a href= ./page?page=". ($page - 3) .">". ($page - 3) ."</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 + 3 <= $total) $page2right = " | <a href= ./page?page=". ($page + 3) .">". ($page + 3) ."</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>";
// Вывод меню
@print($pervpage.$page3left.$page2left.$page1left."<b>".$page."</b>".$page1right.$page2right.$page3right.$nextpage);
?>
|
| |
|
|
|
|
|
|
|
для: ODM
(04.07.2006 в 11:47)
| | неопределенный индекс 'page' , т.е. $_GET['page'] нет.
можете проверить
if (isset($_GET['page']))
{
echo "переменная установлена ";
}
else
{
echo "такой переменной нет";
}
а вы не перепутали имя переменной которая передается, действительно 'page'?
проверьт что все правильно передается ?page=11& и т.д | |
|
|
|
|
|
|
|
для: Snorri
(04.07.2006 в 12:17)
| | да я понял, что $_GET['page'] незаписывается значение страницы. Вот я незнаю как записать в значение в $page. | |
|
|
|
|
|
|
|
для: ODM
(04.07.2006 в 12:29)
| | ?page=11& значение передаётся в любую переменную $a=("./page?page=".($page + 3));
но потом незаписывается при помощи $page=$_GET['page']. | |
|
|
|
|
|
|
|
для: ODM
(04.07.2006 в 12:29)
| | Да нет!
Оно не незаписывается, а просто самого $_GET['page'];
поэтому $page=$_GET['page'] выдает ошибку, ты присваиваешь переменной $page несуществующий элемент массива | |
|
|
|
|
|
|
|
для: Snorri
(04.07.2006 в 12:45)
| | Да именно так. | |
|
|
|
|
|
|
|
для: ODM
(04.07.2006 в 12:49)
| | при определенных настройках к переменной можно обращаться и через гет и просто по имени т.е. $page может здесь собака порылась | |
|
|
|
|
|
|
|
для: Snorri
(04.07.2006 в 12:53)
| | А как такое возможно реализовать? | |
|
|
|
|
|
|
|
для: ODM
(04.07.2006 в 13:00)
| | если не ошибаюсь, register_globals= on | off в php.ini
хотя я пльзуюсь денвером
причем в 4 версии можно было обращаться просто по имени, а 5 нет, только через $_GET
вобщем, я не волшебник, я еще только учусь. | |
|
|
|
|
|
|
|
для: Snorri
(04.07.2006 в 13:17)
| | Все получилось в строке
if($page + 1 <= $total) $page1right = " | <a href= onpage.php?page=". ($page + 1) .">". ($page + 1) ."</a>";
|
имя страницы вставил "onpage.php" . Все работает. Спасибо за советы! | |
|
|
|