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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблон 
:(
    Опции темы
HAS
Дата 4.11.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



делаю сайт по шаблону, т.е. главная страница index.php?id=0 и т.д., так вот все бы ничего и страницы нормально выводятся, вот только когда я сделал, что бы страницы делились (т.е. 1 2 3), то эта страница, начала глючить, у меня записей в бд 29, сделал что бы на каждой странице выводились по 10 страниц, т.е. у меня получается на первой странице с 0-10 страницы, на второй странице с 10-20 страницы, на третей странице с 20 - 29 страницы, тут все хорошо.
нажимаю на 2 страницу и тут получается так, что на одной странице отображаются по 5 страниц, почему так получается я не знаю, может кто поможет ?
вот код всей страницы
Код

<?php
$user="root";
$db="book";
$pass="";
$link = mysql_connect("localhost", $user);
If (!$link)
die ("couldn't connect to MYSQL");
mysql_select_db($db, $link);
// êîëè÷åñòâî çàïèñåé, âûâîäèìûõ íà ñòðàíèöå
$per_page=10;
// ïîëó÷àåì íîìåð ñòðàíèöû
if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
// âû÷èñëÿåì ïåðâûé îïåðàòîð äëÿ LIMIT
$start=abs($page*$per_page);
// ñîñòàâëÿåì çàïðîñ è âûâîäèì çàïèñè
// ïåðåìåííóþ $start èñïîëüçóåì, êàê íóìåðàòîð çàïèñåé.
$q="SELECT * FROM programming ORDER BY id LIMIT $start,$per_page";
$res=mysql_query($q);
while($row=mysql_fetch_array($res))
{
print "<table border=1 width=100% align=center>\n";
print "<tr><td height=39 colspan=4>$row[autor]</td></tr><tr>\n";
print "<td width=230 rowspan=3><img src=$row[image] width=150 height=212></td>\n";
print "<td width=320 rowspan=3>$row[opisanie]</td><td width=180 height=75>Format</td><td width=270>$row[foormat]</td></tr> \n";
print "<tr><td height=70>Download</td><td>$row[download]</td></tr><tr>\n";
print "<td>Parametrs</td><td>$row[megb]</td></tr>\n";

print "</table>\n";
print "<br>\n";


}

// äàëüøå âûâîäèì ññûëêè íà ñòðàíèöû:
$q="SELECT count(*) FROM programming";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];

$num_pages=ceil($total_rows/$per_page);

for($i=1;$i<=$num_pages;$i++) {
  if ($i-1 == $page) {
    echo $i." ";
  } else {
    echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i."</a> ";
  }
}
?>


PM MAIL   Вверх
HalkaR
Дата 4.11.2005, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

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



Странно, вроде все работает. Дамп базы можно?
PM MAIL   Вверх
Mal Hack
Дата 4.11.2005, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Нет, а что ты хочешь. Если ты начинаешь считать с 1, то 0 - это уже от -9 до 0 записи.
Вставляй условие, что если $_GET['page'] < 1 то $_GET['page'] = 1.
PM ICQ   Вверх
HAS
Дата 4.11.2005, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



Цитата
Странно, вроде все работает. Дамп базы можно?

да конечно
Код

Таблица book
 CREATE TABLE `programming` (
`id` VARCHAR( 10 ) NOT NULL ,
`autor` VARCHAR( 100 ) NOT NULL ,
`opisanie` VARCHAR( 255 ) NOT NULL ,
`image` VARCHAR( 50 ) NOT NULL ,
`foormat` VARCHAR( 10 ) NOT NULL ,
`download` VARCHAR( 100 ) NOT NULL ,
`megb` VARCHAR( 10 ) NOT NULL ,
UNIQUE (
`id`
)
) 

Mal Hack все равно не получается !?
Добавлено @ 15:04
блин я уже не знаю что делать...
первая страница отображается нормально, нажимаю на страница 2, все, фигня какая-то, на 1 странице по 5 сообщений выводится, вместо 10 ! smile
PM MAIL   Вверх
Mal Hack
Дата 4.11.2005, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Так, в общем не понимаю я в чем косяк. Вроде все правильно.
Попробуй так заюзать:
Код

$start = ( ( isset( $_GET['page'] ) && ctype_digit( $_GET['page'] ) && $_GET['page'] > 0 ) ? $_GET['page'] - 1 : 0 ) * $per_page;
$q="SELECT * FROM programming ORDER BY id LIMIT " . (int) $start . ", " . $per_page;

PM ICQ   Вверх
HAS
Дата 4.11.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



Mal Hack что-то не получается...
вот на скорую руку накатал пример, так там вообще при переходе на 2 страницу переходит на главную страницу, что за лажа, я на этом месте уже 2-ой день парюсь, плиз помогите !
PM MAIL   Вверх
HAS
Дата 4.11.2005, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



чет файлы не могуприцепить
вот разместил
http://hasphp.narod.ru/Has.exe - exe
http://hasphp.narod.ru/Has.rar -rar
буду очень благодарен за помошь smile
PM MAIL   Вверх
Mal Hack
Дата 4.11.2005, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



HAS что выдает на моем коде?
Выведи SQL запросы, которые генерятся и покажи тут
PM ICQ   Вверх
HAS
Дата 4.11.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



так все как было.
Сначало все нормально, но когда я перехожу на 2 страницу, то все, на каждой странице по 5 сообщений..
PM MAIL   Вверх
Mal Hack
Дата 4.11.2005, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



HAS
Цитата(Mal @ 4.11.2005, 17:41)
Выведи SQL запросы, которые генерятся и покажи тут

Это раз.
Два.
Цитата(Mal @ 4.11.2005, 17:41)
HAS что выдает на моем коде?

Если ты хочешь чтобы тебе помогли отвечай на вопросы хотя бы.
У меня перед глазами твоего монитора нету.
PM ICQ   Вверх
HAS
Дата 4.11.2005, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



Цитата
Выведи SQL запросы, которые генерятся и покажи тут

тут я тебя не понимаю, я жевыкладывал всю страницу, вот она
Код

<?php
$user="root";
$db="book";
$pass="";
$link = mysql_connect("localhost", $user);
If (!$link)
die ("couldn't connect to MYSQL");
mysql_select_db($db, $link);
// êîëè÷åñòâî çàïèñåé, âûâîäèìûõ íà ñòðàíèöå
$per_page=10;
// ïîëó÷àåì íîìåð ñòðàíèöû
if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
// âû÷èñëÿåì ïåðâûé îïåðàòîð äëÿ LIMIT
$start=abs($page*$per_page);
// ñîñòàâëÿåì çàïðîñ è âûâîäèì çàïèñè
// ïåðåìåííóþ $start èñïîëüçóåì, êàê íóìåðàòîð çàïèñåé.
$q="SELECT * FROM programming ORDER BY id LIMIT $start,$per_page";
$res=mysql_query($q);
while($row=mysql_fetch_array($res))
{
print "<table border=1 width=100% align=center>\n";
print "<tr><td height=39 colspan=4>$row[autor]</td></tr><tr>\n";
print "<td width=230 rowspan=3><img src=$row[image] width=150 height=212></td>\n";
print "<td width=320 rowspan=3>$row[opisanie]</td><td width=180 height=75>Format</td><td width=270>$row[foormat]</td></tr> \n";
print "<tr><td height=70>Download</td><td>$row[download]</td></tr><tr>\n";
print "<td>Parametrs</td><td>$row[megb]</td></tr>\n";
print "</table>\n";
print "<br>\n";
}
// äàëüøå âûâîäèì ññûëêè íà ñòðàíèöû:
$q="SELECT count(*) FROM programming";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];
$num_pages=ceil($total_rows/$per_page);
for($i=1;$i<=$num_pages;$i++) {
  if ($i-1 == $page) {
    echo $i." ";
  } else {
    echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i."</a> ";
  }
}

?>
Цитата

HAS что выдает на моем коде?

ничего не выдает, т.е. как были страницы 1 2 3, так они и остались !!!!!

Добавлено @ 17:26
..сейчас такая штука, когда открываю 2 - ую страницу, то открывается главная страница ! smile
PM MAIL   Вверх
Mal Hack
Дата 4.11.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Запусти скрипт и на каждой странице сделай: print $q; и покажи все 6 запросов
Для 0, 1, 2, 3, 4, 5.
PM ICQ   Вверх
HAS
Дата 4.11.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



выводит вот это
Код

SELECT count(*) FROM programming


Значит, кто не понял, проблема сейчас такая, при переходе на 2 страницу загружается главная страница, как это исправить !?
PM MAIL   Вверх
Mal Hack
Дата 4.11.2005, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Е-мое. Выведи q, которое у тебя должно быть: $q="SELECT * FROM programming ORDER BY id LIMIT $start,$per_page";
PM ICQ   Вверх
HAS
Дата 4.11.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



Mal Hack
1 - SELECT * FROM programming ORDER BY id LIMIT 0,10
а при переходе на остальныестраницы (2,3,4) загружается главная страница.
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.0728 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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