Отображение списка таблиц БД

makc337

Новичок
Добрый день.
Вывод списка баз и таблиц.

PHP:
 <head>
    <title>БД</title>
    <meta charset="windows 1251">
    <script></script>
 </head>
<?php
//> Library

    function createMysqli($host = 'localhost', $login = 'root', $psw = '', $bd = 'mysql') {
        $mysqli = mysqli_connect($host, $login, $psw, $bd);
        if (!$mysqli) {
            exit('Ошибка mysqli ');
        }

        mysqli_set_charset($mysqli, 'utf8');

        if (!mysqli_select_db($mysqli, $bd)) {
            exit("Ошибка доступка бд {$bd}");
        }
       
        return $mysqli;
    }
   
  function createSmartyRsArray($rs) {
      if (!$rs) return false;
     
      $smartyRs =  array();
      while ($row = mysqli_fetch_assoc($rs)) {
          $smartyRs = $row;
      }
     
      return $smartyRs;
  }
 
  function createSmartyRsAllArr($rs) {
     if (!$rs) return false;
     $smartyRs = array();
     while ($row = mysqli_fetch_assoc($rs)) {
         $smartyRs[] = $row;
     }
     
     return $smartyRs;
  }
//<
 
//> Models

  //Список
 function listShowBD() {
   $mysqli = createMysqli();
   $sql =  "SHOW DATABASES";
   
   $rs = mysqli_query($mysqli, $sql);
   mysqli_close($mysqli);
   
   return createSmartyRsAllArr($rs);    
 }

 function listShowTableBD($name) {
   $mysqli = createMysqli();
   $sql =  "SHOW TABLES FROM {$name}";
   
   $rs = mysqli_query($mysqli, $sql);
   mysqli_close($mysqli);
   
   return createSmartyRsAllArr($rs);    
 }

 function listInfoTableBD($bd, $table, $id) {
   $mysqli = createMysqli($host = 'localhost', $login = 'root', $psw = '', $bd);
   $sql =  "SELECT * FROM {$table} LIMIT {$id}, 50";
   
   $rs = mysqli_query($mysqli, $sql);
   mysqli_close($mysqli);
   
   return createSmartyRsAllArr($rs);    
 }

  function countsInfoTableBD($bd, $table) {
   $mysqli = createMysqli($host = 'localhost', $login = 'root', $psw = '', $bd);
   $sql =  "SELECT count(*) FROM {$table}";
   
   $rs = mysqli_query($mysqli, $sql);
   mysqli_close($mysqli);
   
   return createSmartyRsArray($rs);    
 }
//<

?>
<!DOCTYPE html>
<html lang="en">
  <head>
      <meta charset="utf8">
      <title>База данных</title>
      <style>
          * {
              padding: 0;
              margin: 0;
          }
         
          ul {
              margin: 10px;
          }
          ul li a {
              color: orange;
          }
          ul li {
              list-style-type: none;
          }
          ul li a:hover{
              opacity: 0.6;
          }
         
          table {
              width: 1000px;
              text-align: center;
          }
         
          table tr:nth-child(1) {
              color: red;
          }
          tr{
              border: 0;
          }
          .name-slot td{
              border-left: 1px solid black;
              border-top: 1px solid black;
              border-bottom: 1px solid black;
          }
         
          .name-select td{
              border-left: 1px solid black;
              border-bottom: 1px solid black;
          }  
           
        .kol {
            text-align: center;
            width: 100%;
            height: 50px;
        }
        a {
            margin: 0;
            text-decoration: none;
        }
        a:hover {
            text-decoration: underline;
        }
        .paginator{
            color: red;
            width: 250px;
            text-align: center;
            margin: 0 auto;
        }
      </style>
  </head>
  <body>
   <div >
  <div style="text-align:center; position:relative; width: 1000px; background-color: #FFFFFF;">
  <fieldset><legend>Базы</legend>
  <table>
      <!-- Отрисовка спика БД-->
      <?php function ShowAction() {?>
       <?php
            //Возвращаем данные
            $showDB = listShowBD();
       ?>
      <ul>
         <?php if (isset($showDB) && $showDB){?>
             <?php foreach ($showDB as $key => $value){?>
                 <li>
                     <a href="?action=ShowListTableBd&name=<?= $value['Database']?>"><?= $value['Database']?></a>
                </li>
             <?php }?>
         <?php } else {?>
            Ничего не найдено
         <?php }?>
      </ul>
      <?php }?>
      <!--< Отрисовка спика БД-->
     
      <!-- Отрисовка спика таблиц БД-->
      <?php function ShowListTableBdAction() {?>
       <?php
            $name = isset($_GET['name']) ? $_GET['name'] : 'Evgenii_petrov';
            //Возвращаем данные
             $showTableDB = listShowTableBD($name);
             $countTable = count($showTableDB);
             $nameBD = $_GET['name'];
       ?>
      <ul>
          <p class="kol">Количество таблиц: <?= $countTable?></>
         <?php if (isset($showTableDB) && $showTableDB){?>
             <?php foreach ($showTableDB as $key => $value){?>
                 <li>
                     <a href="?action=ShowInfoTable&bd=<?= $nameBD?>&name=<?php
                     foreach ($value as $k => $nameTable) {
                         echo $nameTable;
                     }
                     ?>">
                         <?php foreach ($value as $k => $nameTable) {?>
                         <?php echo $nameTable;}?></a>
                </li>
             <?php }?>
         <?php } else {?>
            Ничего не найдено
         <?php }?>
      </ul>
      <?php }?>
      <!--< Отрисовка спика таблиц БД-->  
     
     
       <!-- Отрисовка таблиц БД-->
      <?php function ShowInfoTableAction() {?>
       <?php
            //Возвращаем данные
            $bd = $_GET['bd'];
            $id = isset($_GET['id']) ? $_GET['id'] : 0;
            $nameTable = $_GET['name'];
            $showTables = listInfoTableBD($bd, $nameTable, $id);
            $count = countsInfoTableBD($bd, $nameTable);
            $count = $count['count(*)'];
            $round = ceil($count/50)
       ?>
       
      <div class="paginator"> <?php for($i = 0; $i <$round; $i++) {?>
       <a href="?action=ShowInfoTable&bd=<?= $bd?>&name=<?= $nameTable?>&id=<?php
          echo $i * 50;
       ?>"> <?= $i + 1 ?> </a>
       <?php }?></div>
          <table>
         <?php if (isset($showTables) && $showTables){?>
           <!--Имена ячеек-->
           <tr class="name-slot">
             <?php foreach ($showTables[0] as $tables => $value){?>
                 <!--Имена ячеек-->
                 
                   <td> <?= $tables?></td>  
               
                <!--Имена ячеек-->
             <?php }?>
               </tr>
             <!--Имена ячеек-->
           
             <!--Даные ячееек-->
             
             <?php foreach ($showTables as $tables => $value){?>
                 <!--данные ячеек-->
                 <tr class="name-select">
                 <?php foreach ($value as $k => $va){?>
                 
                   <td><?= $value[$k]?></td>
                 
                 <?php }?>  
                <!--данные ячеек-->
                </tr>
             <?php }?>
               
         <?php } else {?>
            Ничего не найдено
         <?php }?>
       </table>
      <?php }?>
      <!--< Отрисовка таблиц БД-->    
  </body>  
</html>
<?php
 $actionName = isset($_GET['action']) ? ucfirst($_GET['action']) : 'Show';
 $actionName .= 'Action';
 $actionName();
?>

Подскажите пожалуйста, что нужно поменять, чтоб в списке таблиц, страницы отображались как на форумах:

1 ... n-1 n n+1 ... N

где
1 - первая страница списка таблиц
n-1 - предыдущая страница
n - текущая
n+1 - следующая
N - последняя

Заранее спасибо!
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Изучить вопрос постраничного вывода
 
Сверху