Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновлённая навигация 
:(
    Опции темы
Golovastik
Дата 23.9.2010, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Вот вроде сделал навигацию, по исправлял все ошибки, но проблема в том ,что не получается добиться чтоб на каждой странице,было слева слово Назад, а справа слово - Вперёд, и так на всех страницах, у меня как-то не так выводит,как сделать правильно?
У меня таблица такая в базе данных для пробы сделана.
id     cat             text 
1    1                Петя 
2    1                Фрося 
3    1                Борис 
4    1                Анатолий 
5    1                Банан 
6    1                Тарзан 
7    1                Макс 
8    1                Министр 
9    1                Факел 
10    1                Природа 
11    1                Листья 
12    1                Друзья 
13    1                Морковь 
14    1                Титаник 
15    1                Мел 
16    1                Натрий 
17    1                Вуглевод 
18    1                Кислород 
19    1                Дартаньян 
20    1                Поезд 

Файл databse.php
Код

<?php
$server = 'localhost'; //Имя сервера
$user = 'privet'; //Логин   
$password = '12345'; //Пароль
$db = 'video';
$table = 'lessons'; //Название таблицы
$error_database = '<h2>Произошла ошибка в базе данных,<br/>
в ближайшее время она будет устранена!</h2>';
$connect = mysql_connect($server,$user,$password);
if(!$connect){
echo $error_database;
exit;
};
//$connect по какому соединению мы работаем
$select = mysql_select_db($db,$connect);
if(!$select){
echo $error_database;
exit;
};
?>



Файл index.php
Код

<?php
include 'database.php';  /*Соединяемся с Базой Данных*/
//Число постов выводящих на странице
$num = 3;
if(empty($page)){
die('<p style="color:red; font-size:24px;">Ошибка! Неверный URL адресс!</p>');
}
$page = $_GET['page'];
$result = mysql_query("select COUNT(*) FROM lessons",$connect);
$posts = mysql_result($result,0);
//Находим общее количество страниц
$chislo_str = intval(($posts-1)/$num)+1;
$page = intval($page);
//empty($page) Если переменной не существует или ее значение равно нулю
if(empty($page) or $page<0) $page = 1;
if($page > $chislo_str) $page = $chislo_str;
// Если ввести $page=7  тогда 7*3-3=18  
//с 18 поста будет выводится пост 18,19,20 на странице №7
$start = $page * $num - $num;  
$result = mysql_query("SELECT * FROM lessons LIMIT $start, $num",$connect);  
// В цикле переносим результаты запроса в массив $postrow  
while ( $postrow[] = mysql_fetch_array($result)); 


//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
 echo $postrow[$i]['id'].'&nbsp;'.$postrow[$i]['text'].'<br/>';
}  

//------------------------------------------------
// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '<a href= ./?page=1><<</a>  ;
                               <a href= ./?page='. ($page - 1) .'><</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $chislo_str) $nextpage = ' <a href= ./?page='. ($page + 1) .'>></a>  
                                   <a href= ./?page=' .$chislo_str. '>>></a>';   

// Находим две ближайшие страницы с обоих краев, если они есть  
if($page - 2 > 0) $page2left = ' <a href= ./?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';  
if($page - 1 > 0) $page1left = '<a href= ./?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';  
if($page + 2 <= $chislo_str) $page2right = ' | <a href= ./?page='. ($page + 2) .'>'. ($page + 2) .'</a>';  
if($page + 1 <= $chislo_str) $page1right = ' | <a href= ./?page='. ($page + 1) .'>'. ($page + 1) .'</a>'; 

// Вывод меню  
 
if(isset($pervage)) echo $pervage;
if(isset($page2left)) echo $page2left;
echo '<b>';
if(isset($page)) echo $page;
echo '</b>';
if(isset($page1right)) echo $page1right;
if(isset($page2right)) echo $page2right;
if(isset($nextpage)) echo $nextpage;
?>


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

user posted image
PM MAIL   Вверх
IgorIV
Дата 23.9.2010, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 7.9.2009

Репутация: 2
Всего: 8



На картинке результат отображения html. Ты же приводишь PHP-код. Приведи к общему виду.
PM MAIL   Вверх
Sanchezzz
Дата 23.9.2010, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



если мой сонный мозг меня не обманывает то


1 общее кол. потсов  / на кол. отображаемых на странице. = это будет  то самое кол. которое нужно будет отобразить. как на картинке буковки GОООООGLE

2 Вывод делаем for (...) {

  тут выводим буквы OOOO
  lтак же надо же подкрасить букву ?
  нужно сделать условия если тек. страница совподает с номер из массива то крами букву.
}

3 со стрелочками также и оставляешь.

4 останется все сверстать нормально


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Golovastik
Дата 26.9.2010, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Вот попробовал сделать, но получается немного не то, что я хочу, а хочу я такое, как увидел у одних на сайте,вот фото:
http://ipicture.ru/uploads/100926/T4IeilKxZs.jpg 

Пробовал не получается так сделать,не могу понять как так сделать,чтоб например я на 7 странице, чтоб 
первые 5 пунктов кроме первого были 3 точки, а когда перешел к первому пункту, эти 3 точки пропадали.
Вот так:

1...6 7 8 9 10 ... 15

Вот код который на данный момент сделал,чего-то не выходит,если кто знает помогите разобраться как сделать.
Файл index.php
Код
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Проба</title>
<style type="text/css">
.knopka_nazad1{text-decoration:underline; font-size:18px; color:black; font-family:Tahoma; }
.knopka_nazad2{text-decoration:none; font-size:18px; color:gray; font-family:Tahoma;}
.knopka_vpered1{text-decoration:underline; font-size:18px; color:black; font-family:Tahoma;}
.knopka_vpered2{text-decoration:none; font-size:18px; color:gray; font-family:Tahoma;}
</style>
</head>
<body>

</body>
</html>

<?php
include 'database.php';  /*Соединяемся с Базой Данных*/
//Число постов выводящих на странице
$num = 3;
if(empty($page)){
die('<p style="color:red; font-size:24px;">Ошибка! Неверный URL адресс!</p>');
}
$page = $_GET['page'];
$result = mysql_query("select COUNT(*) FROM lessons",$connect);
$posts = mysql_result($result,0);
//Находим общее количество страниц
$chislo_str = intval(($posts-1)/$num)+1;
$page = intval($page);
//empty($page) Если переменной не существует или ее значение равно нулю
if(empty($page) or $page<0) $page = 1;
if($page > $chislo_str) $page = $chislo_str;
// Если ввести $page=7  тогда 7*3-3=18  
//с 18 поста будет выводится пост 18,19,20 на странице №7
$start = $page * $num - $num;  
$result = mysql_query("SELECT * FROM lessons LIMIT $start, $num",$connect);  
// В цикле переносим результаты запроса в массив $postrow  
while ( $postrow[] = mysql_fetch_array($result)); 


//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
if(isset($postrow[$i]['id'])) echo $postrow[$i]['id'].'&nbsp;'.$postrow[$i]['text'].'<br/>';
}  


//------------------------------------------------
// Стрелка назад  
if($page>1)
$nazad= '<a class="knopka_nazad1" href= ./?page='.($page-1).'>Назад</a>';
else $nazad= '<span class="knopka_nazad2">Назад</span>';
       
//Стрелка вперед  
if($page<$chislo_str)
$vpered = '<a class="knopka_vpered1" href= ./?page='.($page + 1).'>Вперёд</a>';
else $vpered= '<span class="knopka_vpered2">Вперёд</span>';

// Вывод меню  
echo $nazad.'&nbsp;&nbsp;';
if($page>5) {
echo '<a href=./?page=1>1</a>'.' ...';
}
echo '&nbsp;&nbsp;';

//$mustang = array();


for($i=($page-5>0)?($page-5):1; ($i<=$page+5)&&$i<=$chislo_str; $i++)
{

if($i==$page) { echo '<b>'.$i.'</b>'; }

else {  echo '<a href= ./?page='.$i.'>'.$i.'</a>'; }

echo '&nbsp;|&nbsp;';
}


if($page>1 &&  $page!=$chislo_str  &&  $page!=$chislo_str-1
&&  $page!=$chislo_str-2  &&  $page!=$chislo_str-3 
&&  $page!=$chislo_str-4 &&  $page!=$chislo_str-5
)
echo '...'.'<a href=./?page='.$chislo_str.'>'.$chislo_str.'</a>'.'&nbsp;&nbsp;';


echo $vpered;

?>



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.