Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

вывод из masql на php

Обсуждение темы вывод из masql на php в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; у меня постраничный вывод из базы. вот код PHP код: <?php $rpp = 1 ;  // кол-во записей на страницу, количество выводимых реплик везде онинаково навсех разделах //$page=0; // откуда начать вывод, с какой записи начать вывод $cnt = 14 ;  // общее количество записей во всём выводе, как то надо определить автоматически $rad ...


Закрытая тема
 
Опции темы
Старый 14.09.2011, 16:49   #1
у меня постраничный вывод из базы.

вот код

PHP код:
<?php
$rpp
=1// кол-во записей на страницу, количество выводимых реплик везде онинаково навсех разделах
//$page=0; // откуда начать вывод, с какой записи начать вывод

$cnt=14// общее количество записей во всём выводе, как то надо определить автоматически
$rad=3// сколько ссылок показывать рядом с номером текущей страницы (2 слева + 2 справа + активная страница = всего 5)
$link_sc=''// путь на страницу на которой выводится база, значение пусто - работает

if (isset($_GET['page']))
{
  
$page=$_GET['page']-1// текущая страница
}
else
{
  
$page=0;
}


// дейтвие на чтение данных из базы
                                                                                                                              // откуда начать, сколько вывести
    
$page_article_base mysql_query("SELECT title, author, date, views, text, section, source, comment, rating FROM article_cream LIMIT $page$rpp"$basesql);

    
// на случае ошибки
    
if (!$page_article_base) {
    echo 
"запрос данных из базы не прошел<p>";
    exit (
mysql_error());
    }

// условие на вывод всей инфы что есть в базе
    
if (mysql_num_rows($page_article_base)>0);{
    
$article mysql_fetch_array($page_article_base);
    do{
    
// шаблон, вывод статей
    
print "
<TABLE WIDTH='100%'  CELLSPACING=4 CELLPADDING=4 frame= Hsides rules= Cols>
<TR>
<TD bgcolor=#c0c0c0>
<b>
$article[title] </b>
</TD>
<TD align='right' bgcolor=#c0c0c0>
<b>автор:</b> <i>
$article[author]</i>
</TD>
</TR>
<TR>
<TD colspan='2' class='article' >
<?php //текст тоже прозрачный от свойства прозрачности фона?>
$article[text]
</TD>
</TR>
<TR>
<TD colspan='2' align='right'>
<font size=2pt>
$article[date]| <b>раздел:</b> $article[section]| <b>источник:</b> $article[source]| <b>комментариев:</b> $article[comment]| <b>просмотров:</b> $article[views]| <b>рейтинг:</b> $article[rating] </font>
</TD>
</TR>
</TABLE>
<p>
    "
;

    }
    while (
$article mysql_fetch_array($page_article_base));

    
// выравневание по центру кнопок назад в перёд
    
echo "<center>";
    
 
$links=$rad*2+1;

// определяем количество получаемых страниц и округляем его оператором ceil в большую сторону
$pages=ceil($cnt/$rpp);

// вывод ссылок первой и предыдущей
if ($page>0) { echo "<a href=\"$link_sc?page=1\">первая</a> | <a href=\"$link_sc?page=".($page)."\">пред.</a> |"; }
$start=$page-$rad;
if (
$start>$pages-$links) { $start=$pages-$links; }
if (
$start<0) { $start=0; }
$end=$start+$links;
if (
$end>$pages) { $end=$pages; }
for (
$i=$start$i<$end$i++) {
 echo 
" ";
 
// вывод ссылок стариниц а если текущая то не ссылка
    
if ($i==$page) {
    echo 
"<b>";
} else {
    echo 
"<a href=\"$link_sc?page=".($i+1)."\">";
}
// echo ($i*$rpp+1)."-";
// if ($i!=($pages-1)) { echo $i*$rpp+$rpp; } else { echo $cnt; }
    
echo ($i+1);
    if (
$i==$page) {
    echo 
"</b>";
} else {
    echo 
"</a>";
}
    if (
$i!=($end-1)) { echo "&nbsp;|"; }
}
    if (
$pages>$links&&$page<($pages-$rad-1)) { echo " ... <a href=\"$link_sc?page=".($pages)."\">".($pages)."</a>"; }

// вывод ссылок последней и следующей
    
if ($page<$pages-1) { echo " <a href=\"$link_sc?page=".($page+2)."\">| след.</a> | <a href=\"$link_sc?page=".($pages)."\">послед.</a>"; }
    
// выравневание по центру кнопок назад в перёд
    
echo "</center>";
    

    } 
    
//else echo "не извлекается жаль"; //почемуто не работает с этой строкой
    

    
    
    
}// конец вывод статей
?>

как сделать так, чтоб количество записей (значение $cnt) само попределялось, у меня к примеру записано 14 строк ,

SELECT COUNT(*) FROM tab_name
- определяет число категорий - столцов

ещё у меня когда я щёлкую на следующюю (лист)

1 | 2 | 3 | 4 | 5 | 6 | 7 ... 14 | след. | послед.

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

получается так:
1 страница
1
2
3
4

2 страница
2
3
4
5

3 страница
3
4
5
6

а надо так

1 страница
1
2
3
4

2 страница
5
6
7
8

3 страница
9
10
11
12

как сделать помогите пожалуйста

Последний раз редактировалось kostia; 14.09.2011 в 16:53..
 
Старый 14.09.2011, 16:49
Ссылки
Старый 14.09.2011, 18:11   #2
правильно так:

Код:
$fstRow=$page*$rpp;
$page_article_base = mysql_query("SELECT title, author, date, views, text, section, source, comment, rating FROM article_cream LIMIT $fstRow, $rpp", $basesql);
Добавлено через 3 минуты

для определения количества записей:
Код:
$cnt=mysql_num_rows($page_article_base);
блин, есть же куча php справочников где все разжовано. заглядывайте туда по таким тривиальным вопросам.

Последний раз редактировалось redreem; 14.09.2011 в 18:11.. Причина: Добавлено сообщение
 
Старый 14.09.2011, 18:55   #3
спасибо большое оказалось так мало надо дописать и просто.

СПАСИБО!
 
Старый 14.09.2011, 18:55
Закрытая тема


Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод из sql kostia ASP, Perl, PHP и MySQL 1 21.11.2012 09:01
Постраничный вывод vitalius ASP, Perl, PHP и MySQL 6 09.03.2009 21:53
Вывод кода.... candy_man ASP, Perl, PHP и MySQL 12 21.04.2006 02:53
вывод на печать vdooch Технологии Flash 1 29.03.2005 11:49
вывод информации vision HTML, CSS, JavaScript 3 03.08.2003 09:49


Текущее время: 06:20. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Тарифный план «Lite»
Место: 1000 Мб
Трафик: неограниченный
Панель управления
Заказать ТП «Lite»
Тарифный план «Normal»
Место: 2000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Normal»
Тарифный план «Profy»
Место: 7000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Profy»
Тарифный план «Места хватит!»
Место: 25 ГБ
Трафик: неограниченный
Поддержка SSI, ssh
Заказать ТП «Места хватит!»
Дизайнерский форум