Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Количество строк на страницу
 
 автор: Vova   (15.06.2006 в 16:43)   письмо автору
 
 

Имеется у меня простой запрос на вывод данных из MySQL

 $query = "SELECT * FROM table
              WHERE id_parent=".$_GET['id_parent']." 
              ORDER BY pos";
    $ctg = mysql_query($query);
    if(!$ctg) puterror("Ошибка при обращении к каталогу");

<table class="table" style="width: 100%; border-collapse: collapse;" border="1" cellpadding="3" cellspacing="0" rules="all"> 
     <tr class="zagtrtable" align="center">
        <td>№</td>
        <td>А</td>
                <td>Б</td>
                <td>С</td>
        <td>Д</td>
        <td>Е</td>
                
     </tr>
 ....      
      echo "<tr>
              <td>&nbsp;".$i."</td>
                          <td>&nbsp;".$par['currency']."</td>
              <td>&nbsp;".$par['su']."</td>
              <td>&nbsp;".$par['pricemeter']."</td>
              <td>&nbsp;".$par['hb']."</td>
              <td>&nbsp;".$par['pit']."</td>
             
              </tr>";
              $i++;
    }
  }


Если его запустить, то выводится до 3000 строк на странице. Как можно организовать, чтобы можно было выводить, допустим по 20, 50, 100 и тому подобное строк на странице. И надпись примерно такая "Показывать 20 / 50 / 100 на страницу". По умолчанию, например выводится 50 и можно нажимая на 20 или 100 делать вывод, соответственно по 20 или 100 строк на странице. И конечно же надпись например для 20 строк - 1..20 | 21..40 | 41..60 и т.п.... - это, соответственно, чтобы "листать" страницы.

   
 
 автор: kadet   (15.06.2006 в 17:18)   письмо автору
 
   для: Vova   (15.06.2006 в 16:43)
 

Попробуй что то типа такого, если я где то ошибся с выводом из базы значений, поправте сами

В данном случае выводит по 10 на страницу, а там дальше сами додумаете, это уже легко

<?
$per_page
=10;
  if (isset(
$_GET['page'])) $page=($_GET['page']-1); else $page=0;
// вычисляем первый оператор для LIMIT
$start=abs($page*$per_page);
// составляем запрос и выводим записи
// переменную $start используем, как нумератор записей.

 
$query "SELECT * FROM table WHERE id_parent=".$_GET['id_parent']." ORDER BY pos LIMIT $start,$per_page";
 
$result mysql_query($query);
$num_result mysql_num_rows($result);

for(
$i=0$i<$num_result$i++)
 {
 
$par mysql_fetch_array($result);

 
?>



<tr>

                          <td>&nbsp;<? echo$par['currency']; ?></td>
              <td>&nbsp;<? echo $par['su']; ?>"</td>
              <td>&nbsp;<? echo$par['pricemeter']; ?></td>
              <td>&nbsp;<? echo$par['hb']; ?></td>
              <td>&nbsp;<? echo$par['pit']; ?></td>

              </tr>

<?

}

?>

 <br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class=page><b>Страницы:&nbsp;&nbsp;</b></font>
<?
$query
="SELECT count(*) FROM table WHERE id_parent=".$_GET['id_parent']."";
$res=mysql_query($query);
$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-== $page) {
    echo 
"<b>".$i."</b>&nbsp;&nbsp;";

  } else {


    echo 
"<b><a href=".$_SERVER['PHP_SELF']."page=".$i.">".$i."</b>&nbsp;&nbsp;";
  }

  }


?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования