[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос для знатоков в MySQL
lawbreaker
Доброе утро!
Мне нужна помощь в мускуле.

на страницу выводиться только 10 данных из базы
вот вопрос:
как зделать чтобы если данных больше чем 10 выводилась ссылка на страницу номер где находяться следуищие данные. Я себе ето так представлял, но увы ((



Спустя 15 минут, 24 секунды (22.02.2009 - 17:03) Sylex написал(а):

Спустя 6 минут, 2 секунды (22.02.2009 - 17:09) Семён написал(а):
Для лавбрейкера мне кажется это рановато smile.gif

Спустя 1 час, 4 минуты, 10 секунд (22.02.2009 - 18:13) Sylex написал(а):
Цитата (Семён @ 22.02.2009 - 20:09)
Для лавбрейкера мне кажется это рановато smile.gif

почему? ohmy.gif само то!

Спустя 5 минут, 51 секунда (22.02.2009 - 18:19) Семён написал(а):
Мне кажется рановато ему готовые решения давать, нужно было лишь указать на LIMIT, ибо сойдёт с пути истинного dry.gif

Спустя 2 часа, 20 минут, 44 секунды (22.02.2009 - 20:39) lawbreaker написал(а):
блин! я там ниврублися. я вставлял куски кода в мой код . но всёё безтолку (((
есть способ попроще?

Спустя 12 минут, 18 секунд (22.02.2009 - 20:52) Sylex написал(а):
lawbreaker
нету... давай так, выкладывай сюда свой код, покороче, будем помогать smile.gif

Спустя 1 час, 51 минута, 31 секунда (22.02.2009 - 22:43) Семён написал(а):
Sylex
Ну вот что я говорил. wink.gif

Спустя 2 часа, 30 минут, 55 секунд (23.02.2009 - 01:14) lawbreaker написал(а):
PHP
if ($_GET['where'] == 'soft')
{
/*
тут я добавил !$_GET['page'] потомучто ссылка со стартовой страницы выглядет вот так showtema.php?where=soft&page=0 
*/
        if ($_GET['page'] || !$_GET['page'])
        {
            include("db.php");
            mysql_connect($DBSERVER,$DBUSER,$DBPASS);
            $max = "10";
            $start = $_GET['page'] * $max;
            $end = $_GET['page']*$max+$max;
            echo ' Про Страницу выводятса <b>'.$max.'</b> Программ';
            

    $sql 
= "SELECT * FROM `allday`.`scripts` WHERE category = 'Софт ' ORDER BY id desc LIMIT ".$start.",".$end;
                    $que = mysql_query($sql);
                    while($z = mysql_fetch_array($que))
                    {
                    echo'        <div class="post">
                    <div class="title">

                    <h2>'
.$z[8].' : <a href="showtema.php?id='.$z[0].'">'.$z[1].'</a></h2>
                    <p><small>Созданно в '
.$z[5].'</small></p>
                    </div>
            <div class="entry">
                <p><img src="'
.$z[4].'" alt="" width="150" height="150" class="left" />'.$z[2].'
            </div>
            <p class="links"> <a href="showtema.php?id='
.$z[0].'" class="more">Читать Дальше...</a>  <a href="showtema.php?id='.$z[0].'" class="comments">Комментарии</a> </p></div>';
                    }

        }
}

с выводом опредёлённых количеств сообшений на страницу я додумался сам. А вот как теперь вывести ссылки на страницы и как узнать сколько страниц?

Спустя 8 часов, 41 минута, 13 секунд (23.02.2009 - 09:55) Семён написал(а):
Не читал выше коды, но отвечу на вопрос "как узнать сколько страниц?" Тренировать логику нужно)))) У вас в стране орехов и шоколада много, почаще кушай)

Ответ:
1) считаешь сколько всего записей в БД
2) делишь кол-во записей на кол-во по скольку выводишь
3) получаешь кол-во страниц.

Спустя 4 часа, 59 минут, 27 секунд (23.02.2009 - 14:55) lawbreaker написал(а):
извеняюсь уменя ничаго не получаетса (((
PHP
if ($_GET['page'] || !$_GET['page'])
        {
            include(
"db.php");
                
mysql_connect($DBSERVER,$DBUSER,$DBPASS);
                    
$max "10";
                
$start $_GET['page'] * $max;
                
$end $_GET['page']*$max+$max;
                echo 
' Про Страницу выводятса <b>'.$max.'</b> Программ';
            

                    
$sql "SELECT * FROM `allday`.`scripts` WHERE category = 'Софт ' ORDER BY id desc LIMIT ".$start.",".$end;
                        
$que mysql_query($sql);
                            while(
$z mysql_fetch_array($que))
                            {
                            echo
'        <div class="post">
                            <div class="title">
                            <h2>'
.$z[8].' : <a href="showtema.php?id='.$z[0].'">'.$z[1].'</a></h2>
                            <p><small>Созданно в '
.$z[5].'</small></p>
                            </div>
                            <div class="entry">
                            <p><img src="'
.$z[4].'" alt="" width="150" height="150" class="left" />'.$z[2].'
                            </div>
                            <p class="links"> <a href="showtema.php?id='
.$z[0].'" class="more">Читать Дальше...</a>  <a href="showtema.php?id='.$z[0].'" class="comments">Комментарии</a> </p></div>';
                            }
        
$co "SELECT count(*) WHERE category = 'Софт '";
        
$coq mysql_query($co);
        
$row mysql_fetch_row($coq);
        echo 
$row;
        
$division $row[0] / $max;
        for (
$i=0;$i<$division;$i++){
        
// когда я в for  пропмсываю echo  то ничаго не выводитса ((
        
$a '<a href=?where='.$_GET['where'].'&page='.$i.'>'.$i.'</a>';
        
        }
        
//выводим $a из  $for
        
echo $a;
// ето для теста
        
echo $division;
        }

Спустя 4 часа, 36 минут, 48 секунд (23.02.2009 - 19:32) modobaks написал(а):
Поставь точку перед рабно
PHP
$a .=

Спустя 35 минут, 41 секунда (23.02.2009 - 20:07) Guest написал(а):
(((
всёравно не работает! а как можно подругому зделать?

Спустя 52 минуты, 23 секунды (23.02.2009 - 21:00) jetistyum написал(а):
Дружище, сегодня 23-е .... сегодня по-другому ну просто никак..
Вот smile.gif
Парни, поздравляю Всех!!!!
Если мальчик в детском саде
Мучил птичек и котов,
Значит он к военной службе
Был с рождения готов.
Если этот мальчик в школе,
Выпив водки, спал в кустах,
Значит он пригоден к службе
На ответственных постах.
Если к сессии студентом
Он готовился за час,
Значит он служить в генштабе
Мог бы запросто сейчас.
Если ж этот дядя вырос
И остался дураком,
Значит он в душе фельдмаршал
И как минимум главком.
Если этого придурка
Ежедневно видишь ты,
Можешь смело в понедельник
Подарить ему цветы


ДА! ЭТО ОФФТОП!!!!

Спустя 18 минут, 47 секунд (23.02.2009 - 21:19) Viking написал(а):
jetistyum
БРАВО!!!
Присоединяюсь к поздравлению!!!
jetistyum
пользуясь эксклюзивными правами продолжения оффтопа по 23 числам февраля, как цветовод-любитель, давно хотел тебя спросить, а что это у тебя за кактус с глазками на аватарке? =)

Спустя 8 минут, 16 секунд (23.02.2009 - 21:27) jetistyum написал(а):
это у меня исторически сложилось любовь к котам smile.gif
Классный Кактус, правда smile.gif) только не нашел такую большую карртинку, а то на бэкграунд поставил бы )

Спустя 1 час, 17 минут, 40 секунд (23.02.2009 - 22:44) lawbreaker написал(а):
так помогите мне плиз

Спустя 51 минута, 28 секунд (23.02.2009 - 23:36) jetistyum написал(а):
а это как понять???
PHP
if ($_GET['page'] || !$_GET['page'])
        {
.....

?????

Спустя 23 минуты, 42 секунды (24.02.2009 - 00:00) lawbreaker написал(а):
у меня самая первая страница вот так showtema.php?where=soft&page=0
потомучто
Страница номер 0
0*$max = 0 //тоесть с 0 до 10
0*$max+$max=10
Страница номер 1
0*$max =10 //тоесть с 10 до 20
0*$max+$max=20
И ТАК ДАЛЕЕ.
поскольку 0 ровно "false" приходитса вот ето прописывать : || !$_GET[..

я делаю ето так потомучто мне никто не сказал как ето правельно делаетса. поетому я ето зделал так..

Спустя 22 минуты, 1 секунда (24.02.2009 - 00:22) jetistyum написал(а):
ну а логика твоего if какая?
если есть .... $_GET[page'] или если нет $_GET['page']
то....
а какие еще варианты могут быть???
где логика???

Спустя 5 минут, 52 секунды (24.02.2009 - 00:28) lawbreaker написал(а):
у меня её нет. я ещё не такой развитый как ты. мне 13 лет, такшо помоги мне плиз. как правельно зделать то что я хочу?

Спустя 24 минуты, 18 секунд (24.02.2009 - 00:52) jetistyum написал(а):
Это классно, что ты такой малой, а пытаешься программить, но!!!
Без своей логики ты просто копипастер, а не программист...
Ты сначала должен продумать что-то ... (а лучше даже прорисовать на бумажке схематично) .... а потом сесть и закодить...
а то ты так и будешь плевые задачи решать по трое суток.
или тебе просто каждый раз нужно преподносить готовое решение???


Спустя 2 часа, 6 минут, 55 секунд (24.02.2009 - 02:59) lawbreaker написал(а):
ну зачем готовые? просто подсказку.

Спустя 1 минута, 34 секунды (24.02.2009 - 03:00) lawbreaker написал(а):
блин. ну плиз дай на етот раз готовое решение очень надо

Спустя 11 часов, 38 минут, 41 секунда (24.02.2009 - 14:39) lawbreaker написал(а):
даш? плиз

Спустя 1 час, 48 минут, 59 секунд (24.02.2009 - 16:28) Viking написал(а):
думаю не даст, он сегодня наверняка грустный после вчерашнего...

Спустя 12 минут, 51 секунда (24.02.2009 - 16:41) lawbreaker написал(а):
Viking
а что вчера было?
викинг ты же профи. помоги мне плиз

Спустя 14 минут, 11 секунд (24.02.2009 - 16:55) sergeiss написал(а):
Вывод одной страницы я не смотрел, честно говоря smile.gif

Но вот что это???
PHP
$co = "SELECT count(*) WHERE category = 'Софт '";
        $coq = mysql_query($co);
        $row = mysql_fetch_row($coq);
        echo $row;
        $division = $row[0] / $max;
        for ($i=0;$i<$division;$i++){
        // когда я в for  пропмсываю echo  то ничаго не выводитса ((
        $a = '<a href=?where='.$_GET['where'].'&page='.$i.'>'.$i.'</a>';
        
        
}
        //выводим $a из  $for
        echo $a;
// ето для теста
        echo $division;

Давай смотрим по порядку.
1. Что это? - echo $row;
$row - это массив. Ты на распечатке увидишь слово Array. Но вовсе не цифровое значение.
2. $division = $row[0] / $max; - это ближе к делу smile.gif, но все равно не совсем корректно. Потому что количество страниц у тебя получится дробным. А надо целое. Поэтому надо использовать это так:
$division = ceil( $row[0] / $max );
3. echo $a; - почему ты выводишь ЗА циклом? У тебя будет выведено только последнее значение.
Проще будет внести этот вывод внутрь цикла.

PS. И самое главное я чуть не забыл smile.gif А откуда ты делаешь выборку в данном случае, где имя таблицы?

Спустя 14 минут, 59 секунд (24.02.2009 - 17:10) Viking написал(а):
Цитата
Viking
а что вчера было?
викинг ты же профи. помоги мне плиз

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


_____________
Я Андрей и мне 14 лет :)
И ни как не дождусь когда HardWoman меня удалит
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.