Помощник
|
Обратная нумерация строк, нужна помощь |
SURkiss
|
Сообщение
#1
|
||
|
|
||
|
|||
alex159 |
24.10.2013, 20:39;
Ответить: alex159
Сообщение
#2
|
|
[member=SURkiss], У вас реализована постраничная навигация?
|
|
|
SURkiss
|
Сообщение
#3
|
|
Да, переменная start как раз относиться к постраничной навигации.
//Количество записей на странице $num = $myrow["str"]; //Вычесление с какого номера нужно выводить сообщения $start = $page * $num - $num; $i=1 + $start; do { printf ("<p><b>$i.</b> <b class='redit'><a href='edit_article.php?id=%s'>%s</a></b></p>",$myrow["id"],$myrow["title"]); $i++; } while ($myrow = mysql_fetch_array($result)); } Подсчёт и нумерация работают. Просто хочу чтобы нумерация велась с первого номера с последней страницы, но как это сделать не знаю. Подкорректируйте код, если не сложно или подскажите где поискать инфу. В php профан). |
|
|
fedornabilkin |
25.10.2013, 15:18;
Ответить: fedornabilkin
Сообщение
#4
|
|
Насколько я понял, если на странице 20 записей, то
Хотя нет,я ничего не понял. Подробнее пожалуйста. Сообщение отредактировал fedornabilkin - 25.10.2013, 15:20 |
|
|
SURkiss
|
Сообщение
#5
|
|
Есть админка, в ней выводяться ссылки с названиями новостей, по 20 штук на каждой странице. При клике на ссылку открывается страница редактирования, но это не по сути. Добавил нумерацию каждой такой ссылки, нашёл в интернете пример и мне он подошёл. Но нумерация ведёться не совсем так как мне нужно. На первой странице админки выводяться самые свежие новости, на последней - старые. Нумерация ведёться с единицы начиная с первой страницы. А я желаю наоборот, чтобы нумерация велась с единицы, начиная с самого старого поста, тобишь с последней страницы. Как это реализовать правильно, используя тот код, который я писал выше?
|
|
|
alex159 |
25.10.2013, 22:10;
Ответить: alex159
Сообщение
#6
|
|
Можете пожалуйста, скинуть более полный код, Где идет вывод списка, а также постраничной навигации
|
|
|
SURkiss
|
Сообщение
#7
|
|
<?
$result = mysql_query("SELECT str FROM options WHERE id=2", $db); $myrow = mysql_fetch_array($result); $num = $myrow["str"]; // Извлекаем из URL текущую страницу @$page = $_GET['page']; // Определяем общее число сообщений в базе данных $result00 = mysql_query("SELECT COUNT(*) FROM data WHERE cat=3"); $temp = mysql_fetch_array($result00); $posts = $temp[0]; // Находим общее число страниц $total = (($posts - 1) / $num) + 1; $total = intval($total); // Определяем начало сообщений для текущей страницы $page = intval($page); // Если значение $page меньше единицы или отрицательно // переходим на первую страницу // А если слишком большое, то переходим на последнюю if(empty($page) or $page < 0) $page = 1; if($page > $total) $page = $total; // Вычисляем начиная с какого номера // следует выводить сообщения $start = $page * $num - $num; // Выбираем $num сообщений начиная с номера $start if (!isset($id)) { $result1 = mysql_query("SELECT id,title FROM data WHERE cat=3 ORDER BY id DESC, date LIMIT $start, $num",$db); $myrow1 = mysql_fetch_array($result1); // Переменная $i - вывод номера строки $i=1 + $start; do { // Вывод ссылок на страницу редактирование новостей printf ("<p><b>$i.</b> <b class='redit'><a href='edit_article.php?id=%s'>%s</a></b></p>",$myrow1["id"],$myrow1["title"]); $i++; } while ($myrow1 = mysql_fetch_array($result1)); } else { // Здесь код странички для редактирования, его пропускаю. } // Проверяем нужны ли стрелки назад if ($page != 1) $pervpage = '<a href=edit_article.php?cat='.$cat.'&page=1>Первая</a> | <a href=edit_article.php.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | '; // Проверяем нужны ли стрелки вперед if ($page != $total) $nextpage = ' | <a href=edit_article.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=edit_article.php?cat='.$cat.'&page=' .$total. '>Последняя</a>'; // Находим две ближайшие станицы с обоих краев, если они есть if($page - 5 > 0) $page5left = ' <a href=edit_article.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | '; if($page - 4 > 0) $page4left = ' <a href=edit_article.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | '; if($page - 3 > 0) $page3left = ' <a href=edit_article.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | '; if($page - 2 > 0) $page2left = ' <a href=edit_article.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | '; if($page - 1 > 0) $page1left = '<a href=edit_article.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | '; if($page + 5 <= $total) $page5right = ' | <a href=edit_article.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>'; if($page + 4 <= $total) $page4right = ' | <a href=edit_article.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>'; if($page + 3 <= $total) $page3right = ' | <a href=edit_article.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>'; if($page + 2 <= $total) $page2right = ' | <a href=edit_article.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>'; if($page + 1 <= $total) $page1right = ' | <a href=edit_article.php?cat='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>'; // Вывод меню если страниц больше одной if ($total > 1) { Error_Reporting(E_ALL & ~E_NOTICE); echo "<div class="pstrnav">"; echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage; echo "</div>"; } else { echo "<p>Информация не может быть извлечена! В таблице нет записей.</p>"; exit (); } ?> |
|
|
alex159 |
26.10.2013, 10:53;
Ответить: alex159
Сообщение
#8
|
|
Советую строку
@$page = $_GET['page']; Заменить на эту if(isset($_GET['page'])) { $page = $_GET['page']; } Так как первый код засоряет логи, какждий раз когда вы будете обращаться к этой странице без GET['page'] запроса. Вам в лог ошибок будут выпадать ошибки. |
|
|
SURkiss
|
Сообщение
#9
|
|
if(isset($_GET['page'])) { $page = $_GET['page']; } , большое спасибо за совет, поправил код. А по нумерации можете подсказать что и как?
|
|
|
1putnik |
11.11.2013, 22:40;
Ответить: 1putnik
Сообщение
#10
|
|
|
Попробуйте это
$result1 = mysql_query("SELECT id,title FROM data WHERE cat=3 ORDER BY id DESC, date LIMIT $start, $num",$db); Заменить на это $result1 = mysql_query("SELECT id,title FROM data WHERE cat=3 ORDER BY id ASC, date LIMIT $start, $num",$db); ORDER BY id DESC - сортировка по убыванию ORDER BY id ASC - сортировка по возростанию
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужна програмка постинга в свои сайты | 0 | kasey7 | 354 | 22.4.2024, 19:54 автор: kasey7 |
|
Требуется помощь по сайту на "ВордПресс" Закрылся доступ в панель администратора |
15 | Tia2 | 2393 | 17.4.2024, 0:54 автор: diviner99 |
|
Состояние после ампутации - нужна помощь благотворительный топик |
49 | vitvirtual | 5899 | 1.4.2024, 5:23 автор: vitvirtual |
|
Нужна ли плоская структура категорий в ИМ? | 1 | noviktamw | 1187 | 26.3.2024, 21:50 автор: c4p1t4l15t |
|
требуется помощь с themasoftware (Темапостером) | 0 | Taylor | 631 | 16.3.2024, 18:41 автор: Taylor |
Текстовая версия | Сейчас: 25.4.2024, 18:02 |