Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 24 Май, 2012, 07:16:33

Страниц: [1] 2
Печать
Автор Тема: Вопрос по построчной навигации  (Прочитано 924 раз)
0 Пользователей и 1 Гость смотрят эту тему.
code9    ↓ 
17 Июль, 2009, 08:11:59
НЕ ХУЕТА! ХУЕТА!

Карма: -10
Сообщений: 135
Сила слова: -7.41

Так всем спасибо)Предыдушие проблемы решил.
Теперь буду делать построчную навигацию, как У ВАС В ПРИМЕРЕ!
Там все более менее понятно,кроме составления sql запроса.У меня выводятся данные вот таким простинким запросом
 
SQL
$post=mysql_query("SELECT * FROM `posts` ORDER BY id DESC LIMIT 6");
while ($arr=mysql_fetch_array($post))
{
   
    echo '<b>'.$arr["name"].' в '.''.$arr["date"].' сказал:'.'</b>'.'<br/>'.'<i>'.bb_code($arr["text"]).'</i>'.'<br/>'.'<br/>';
}
тут у меня массив и поэтому мне понятно что такое $arr["name"] $arr["text"]  $arr["date"].
 
Так вот теперь
 

PHP
$nums = 10;
 
if (isset($_GET['page'])) {
    $page = intval($_GET['page']);
}
else {
    $page = 1;
}
 
$query = "SELECT COUNT(*) AS `counter`
            FROM `table`"
;
$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 `table`
            LIMIT {$start}, {$nums}"
;
$sql = mysql_query($query) or die(mysql_error());
 
while ($row = mysql_fetch_assoc($sql)) {
    // здесь выводим наши записи из базы
}
 

 

// далее нам надо прицепить листалку
 
$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> ';
}
 
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> ';
}

 
у вас тут...перейду в новый пост
Записан

Troy    ↓ 
17 Июль, 2009, 08:19:22 , спустя 7 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 45
Сообщений: 2393
Сила слова: 1.88

всё , переучиваюсь , раньше делал по 2 отступа теперь как в примере 4 буду  
Спустя 11 секунд добавил
400 сообщений
Спустя 12 секунд добавил
ура
Записан

rider-sx    ↓ 
17 Июль, 2009, 08:19:35 , спустя 13 секунд
НЕ ХУЕТА! ХУЕТА!

drmmmmmm
Группа: Адекваты

Карма: 32
Сообщений: 2718
Сила слова: 1.18

Ы чем проблема то?
Записан

code9    ↓ 
17 Июль, 2009, 08:20:09 , спустя 34 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: -10
Сообщений: 135
Сила слова: -7.41

У вас тут имеется два запроса
 
SQL
$query = "SELECT COUNT(*) AS `counter`
            FROM `table`"
;

 
SQL
$query = "SELECT *
            FROM `table`
            LIMIT {$start}, {$nums}"
;

Вопрос:как мне теперь эти запры приспособить к моему скрипту
 

Так?
SQL
SELECT COUNT(*) AS `counter`
            FROM `posts`";
SQL
$query = "SELECT *
            FROM `post`
            LIMIT {$start}, {$nums}"
;

 
и все??? скрипт будет работь как надо??
 

Можно тут вместо
PHP
while ($row = mysql_fetch_assoc($sql)) {
    // здесь выводим наши записи из базы
}

mysql_fetch_assoc использовать mysql_fetch_array,чтобы я смог отформатировать вывод как тут
 
PHP
$post=mysql_query("SELECT * FROM `posts` ORDER BY id DESC LIMIT 6");
while ($arr=mysql_fetch_array($post))
{
    
    echo '<b>'.$arr["name"].' в '.''.$arr["date"].' сказал:'.'</b>'.'<br/>'.'<i>'.bb_code($arr["text"]).'</i>'.'<br/>'.'<br/>';
}

вот такие дела,надеюсь вопросы не вызовут вопросов
.
Записан

Troy    ↓ 
17 Июль, 2009, 08:21:02 , спустя 53 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 45
Сообщений: 2393
Сила слова: 1.88


SQL
$post=mysql_query("SELECT * FROM `posts` ORDER BY id DESC LIMIT 6");
while ($arr=mysql_fetch_array($post))
{
   
    echo '<b>'.$arr["name"].' в '.''.$arr["date"].' сказал:'.'</b>'.'<br/>'.'<i>'.bb_code($arr["text"]).'</i>'.'<br/>'.'<br/>';
}

пиздец
 
Записан

adw0rd    ↓ 
17 Июль, 2009, 08:23:18 , спустя 2 минуты 16 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Вопроса не понял
Спустя 1 минуту 47 секунд добавил

....
и все??? скрипт будет работь как надо??
....

да, пробуй
 

Можно тут вместо
PHP
while ($row = mysql_fetch_assoc($sql)) {
    // здесь выводим наши записи из базы
}

mysql_fetch_assoc использовать mysql_fetch_array,чтобы я смог отформатировать вывод как тут
 
PHP
$post=mysql_query("SELECT * FROM `posts` ORDER BY id DESC LIMIT 6");
while ($arr=mysql_fetch_array($post))
{
    
    echo '<b>'.$arr["name"].' в '.''.$arr["date"].' сказал:'.'</b>'.'<br/>'.'<i>'.bb_code($arr["text"]).'</i>'.'<br/>'.'<br/>';
}

вот такие дела,надеюсь вопросы не вызовут вопросов
.
 
да, можно, делай
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
code9    ↓ 
17 Июль, 2009, 08:30:14 , спустя 6 минут 56 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: -10
Сообщений: 135
Сила слова: -7.41



SQL
$post=mysql_query("SELECT * FROM `posts` ORDER BY id DESC LIMIT 6");
while ($arr=mysql_fetch_array($post))
{
   
    echo '<b>'.$arr["name"].' в '.''.$arr["date"].' сказал:'.'</b>'.'<br/>'.'<i>'.bb_code($arr["text"]).'</i>'.'<br/>'.'<br/>';
}

пиздец
 
если ты постишь,чтобы набирать посты то лучше не делай этого.Это просьба.Я как умел так и напрограммировал.
 
Щас попробую...И переименуйте тему,я сделал ошибку
Записан

adw0rd    ↓ 
17 Июль, 2009, 08:33:05 , спустя 2 минуты 51 секунду
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

code9,
 
mysql_fetch_assoc - вернет ассоциативные массивы
mysql_fetch_array - вернет и ассоциативный массив и числовой
 
так как ты используешь ассоциативные индексы, то тебе всеравно какую из функций выбирать.
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
code9    ↓ 
17 Июль, 2009, 08:38:12 , спустя 5 минут 7 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: -10
Сообщений: 135
Сила слова: -7.41

а что тут такое `counter`
 
SQL
$query = "SELECT COUNT(*) AS `counter`
            FROM `table`"
;
.
Записан

adw0rd    ↓ 
17 Июль, 2009, 08:39:56 , спустя 1 минуту 44 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

code9, AS - сокращение от алиас (псевдоним)
Спустя 30 секунд добавил
SQL
COUNT(*) AS `counter`
то есть тут идет именование
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
code9    ↓ 
17 Июль, 2009, 08:56:43 , спустя 16 минут 47 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: -10
Сообщений: 135
Сила слова: -7.41

ясно. Спасибо,все получилось))Последний на сегодня вопрос не по теме)) Как форматировать вывод(с этим я вожусь уже со дня когда я начал изучать пых).
О чем я говорю:я,так как не могу это понять ограничиваю длину сообшения так
PHP
$text = substr($_POST["text"],0,102);

иначе если в моем скрипте пользователь наберет подряд к примеру 500 символов,то мой табличный "диз"  растягивается от одного края монитора к другому.Выглядит это примерно так
 

имя:чета
сообщение:
павпагпгггггггггггггггггггггггггггггггггггггвспкгшспврсплгвкртсгриыипаугпаысипчрнгапырчиаовтаоваоврворавораовралволвоадвлавдлщкважвджвпдвжпдвж
 

А мне нужно,чтобы через опр количество символов был перенос
 
имя:чета
сообщение:
виалгпгврртплгмтрюкплрмлгкмрлрпгвмрпвкюмлрпвг мрпкшгвр
кмлврпврмвмврмлгпркгвмрюплгкрвмгмкрвмгрюлмрпмкптвмпк
кмвкмпвмшрпкмшпркмрврпкгмркшрпгкмрвпклврмвшмркмрвмш
квкпшвмрвтпмв вмпквщрмвгшкрвмгшпркгмрвпгкрвмпгкрвгмрвг
мовк
 
Помогите))как это сделать
Записан

adw0rd    ↓ 
17 Июль, 2009, 09:00:14 , спустя 3 минуты 31 секунду
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

code9, http://ru.php.net/manual/en/function.wordwrap.php
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
code9    ↓ 
17 Июль, 2009, 09:11:23 , спустя 11 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: -10
Сообщений: 135
Сила слова: -7.41

о еее на на буржуйском описание(( может назавешь пару функций по теме?? wordwrap??
Записан

adw0rd    ↓ 
17 Июль, 2009, 09:20:35 , спустя 9 минут 12 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

code9, не на буржуйском, а на родном PHP. Если нравиться русские аналоги, то тебе 1С нужно.
 
Выполни, но не спрашивай что он делает, попробуй сам разобраться.
PHP
wordwrap('павпагпгггггггггггггггггггггггггггггггггггггвспкгшспврсплгвкртсгриыипаугпаысипчрнгапырчиаовтаоваоврворавораовралволвоадвлавдлщкважвджвпдвжпдвж', 102, "<br />\n");
Спустя 1 минуту 4 секунды добавил
Пару? wordwrap, substr, mb_substr, сделать в css - overflow:hidden
Спустя 45 секунд добавил
code9, можно спросить? Сколько тебе лет и ты не знаком ли с Ермаком случайно?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
code9    ↓ 
17 Июль, 2009, 09:34:06 , спустя 13 минут 31 секунду
НЕ ХУЕТА! ХУЕТА!

Карма: -10
Сообщений: 135
Сила слова: -7.41

Кто такой Ермак?С форматиование wordwrap разобрался. Почему меня после добавления сообщеня кидает на первую страницу?Тоесть даже если зайти на index.php гостя открывается на первой странице((что делать.
Записан

Страниц: [1] 2
Печать
 

Перейти в: