Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отображение списка таблиц БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
makc337
Отправлено: 23 Апреля, 2016 - 12:51:39
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




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

PHP:
скопировать код в буфер обмена
  1.  
  2.  <head>
  3.     <title>БД</title>
  4.     <meta charset="windows 1251">
  5.     <script></script>
  6.  </head>
  7. <?PHP
  8. //> Library
  9.  
  10.     function createMysqli($host = 'localhost', $login = 'root', $psw = '', $bd = 'mysql') {
  11.         $mysqli = mysqli_connect($host, $login, $psw, $bd);
  12.         if (!$mysqli) {
  13.             exit('Ошибка mysqli ');
  14.         }
  15.  
  16.         mysqli_set_charset($mysqli, 'utf8');
  17.  
  18.         if (!mysqli_select_db($mysqli, $bd)) {
  19.             exit("Ошибка доступка бд {$bd}");
  20.         }
  21.        
  22.         return $mysqli;
  23.     }
  24.    
  25.   function createSmartyRsArray($rs) {
  26.       if (!$rs) return false;
  27.      
  28.       $smartyRs =  array();
  29.       while ($row = mysqli_fetch_assoc($rs)) {
  30.           $smartyRs = $row;
  31.       }
  32.      
  33.       return $smartyRs;
  34.   }
  35.  
  36.   function createSmartyRsAllArr($rs) {
  37.      if (!$rs) return false;
  38.      $smartyRs = array();
  39.      while ($row = mysqli_fetch_assoc($rs)) {
  40.          $smartyRs[] = $row;
  41.      }
  42.      
  43.      return $smartyRs;
  44.   }
  45. //<
  46.  
  47. //> Models
  48.  
  49.   //Список
  50.  function listShowBD() {
  51.    $mysqli = createMysqli();
  52.    $sql =  "SHOW DATABASES";
  53.    
  54.    $rs = mysqli_query($mysqli, $sql);
  55.    mysqli_close($mysqli);
  56.    
  57.    return createSmartyRsAllArr($rs);    
  58.  }
  59.  
  60.  function listShowTableBD($name) {
  61.    $mysqli = createMysqli();
  62.    $sql =  "SHOW TABLES FROM {$name}";
  63.    
  64.    $rs = mysqli_query($mysqli, $sql);
  65.    mysqli_close($mysqli);
  66.    
  67.    return createSmartyRsAllArr($rs);    
  68.  }
  69.  
  70.  function listInfoTableBD($bd, $table, $id) {
  71.    $mysqli = createMysqli($host = 'localhost', $login = 'root', $psw = '', $bd);
  72.    $sql =  "SELECT * FROM {$table} LIMIT {$id}, 50";
  73.    
  74.    $rs = mysqli_query($mysqli, $sql);
  75.    mysqli_close($mysqli);
  76.    
  77.    return createSmartyRsAllArr($rs);    
  78.  }
  79.  
  80.   function countsInfoTableBD($bd, $table) {
  81.    $mysqli = createMysqli($host = 'localhost', $login = 'root', $psw = '', $bd);
  82.    $sql =  "SELECT count(*) FROM {$table}";
  83.    
  84.    $rs = mysqli_query($mysqli, $sql);
  85.    mysqli_close($mysqli);
  86.    
  87.    return createSmartyRsArray($rs);    
  88.  }
  89. //<
  90.  
  91. ?>
  92. <!DOCTYPE html>
  93. <html lang="en">
  94.   <head>
  95.       <meta charset="utf8">
  96.       <title>База данных</title>
  97.       <style>
  98.           * {
  99.               padding: 0;
  100.               margin: 0;
  101.           }
  102.          
  103.           ul {
  104.               margin: 10px;
  105.           }
  106.           ul li a {
  107.               color: orange;
  108.           }
  109.           ul li {
  110.               list-style-type: none;
  111.           }
  112.           ul li a:hover{
  113.               opacity: 0.6;
  114.           }
  115.          
  116.           table {
  117.               width: 1000px;
  118.               text-align: center;
  119.           }
  120.          
  121.           table tr:nth-child(1) {
  122.               color: red;
  123.           }
  124.           tr{
  125.               border: 0;
  126.           }
  127.           .name-slot td{
  128.               border-left: 1px solid black;
  129.               border-top: 1px solid black;
  130.               border-bottom: 1px solid black;
  131.           }
  132.          
  133.           .name-select td{
  134.               border-left: 1px solid black;
  135.               border-bottom: 1px solid black;
  136.           }  
  137.            
  138.         .kol {
  139.             text-align: center;
  140.             width: 100%;
  141.             height: 50px;
  142.         }
  143.         a {
  144.             margin: 0;
  145.             text-decoration: none;
  146.         }
  147.         a:hover {
  148.             text-decoration: underline;
  149.         }
  150.         .paginator{
  151.             color: red;
  152.             width: 250px;
  153.             text-align: center;
  154.             margin: 0 auto;
  155.         }
  156.       </style>
  157.   </head>
  158.   <body>
  159.    <div >
  160.   <div style="text-align:center; position:relative; width: 1000px; background-color: #FFFFFF;">
  161.   <fieldset><legend>Базы</legend>
  162.   <table>
  163.       <!-- Отрисовка спика БД-->
  164.       <?PHP function ShowAction() {?>
  165.        <?PHP
  166.             //Возвращаем данные
  167.             $showDB = listShowBD();
  168.        ?>
  169.       <ul>
  170.          <?PHP if (isset($showDB) && $showDB){?>
  171.              <?PHP foreach ($showDB as $key => $value){?>
  172.                  <li>
  173.                      <a href="?action=ShowListTableBd&name=<?= $value['Database']?>"><?= $value['Database']?></a>
  174.                 </li>
  175.              <?PHP }?>
  176.          <?PHP } else {?>
  177.             Ничего не найдено
  178.          <?PHP }?>
  179.       </ul>
  180.       <?PHP }?>
  181.       <!--< Отрисовка спика БД-->
  182.      
  183.       <!-- Отрисовка спика таблиц БД-->
  184.       <?PHP function ShowListTableBdAction() {?>
  185.        <?PHP
  186.             $name = isset($_GET['name']) ? $_GET['name'] : 'Evgenii_petrov';
  187.             //Возвращаем данные
  188.              $showTableDB = listShowTableBD($name);
  189.              $countTable = count($showTableDB);
  190.              $nameBD = $_GET['name'];
  191.        ?>
  192.       <ul>
  193.           <p class="kol">Количество таблиц: <?= $countTable?></>
  194.          <?PHP if (isset($showTableDB) && $showTableDB){?>
  195.              <?PHP foreach ($showTableDB as $key => $value){?>
  196.                  <li>
  197.                      <a href="?action=ShowInfoTable&bd=<?= $nameBD?>&name=<?PHP
  198.                      foreach ($value as $k => $nameTable) {
  199.                          echo $nameTable;
  200.                      }
  201.                      ?>">
  202.                          <?PHP foreach ($value as $k => $nameTable) {?>
  203.                          <?PHP echo $nameTable;}?></a>
  204.                 </li>
  205.              <?PHP }?>
  206.          <?PHP } else {?>
  207.             Ничего не найдено
  208.          <?PHP }?>
  209.       </ul>
  210.       <?PHP }?>
  211.       <!--< Отрисовка спика таблиц БД-->  
  212.      
  213.      
  214.        <!-- Отрисовка таблиц БД-->
  215.       <?PHP function ShowInfoTableAction() {?>
  216.        <?PHP
  217.             //Возвращаем данные
  218.             $bd = $_GET['bd'];
  219.             $id = isset($_GET['id']) ? $_GET['id'] : 0;
  220.             $nameTable = $_GET['name'];
  221.             $showTables = listInfoTableBD($bd, $nameTable, $id);
  222.             $count = countsInfoTableBD($bd, $nameTable);
  223.             $count = $count['count(*)'];
  224.             $round = ceil($count/50)
  225.        ?>
  226.        
  227.       <div class="paginator"> <?PHP for($i = 0; $i <$round; $i++) {?>
  228.        <a href="?action=ShowInfoTable&bd=<?= $bd?>&name=<?= $nameTable?>&id=<?PHP
  229.           echo $i * 50;
  230.        ?>"> <?= $i + 1 ?> </a>
  231.        <?PHP }?></div>
  232.           <table>
  233.          <?PHP if (isset($showTables) && $showTables){?>
  234.            <!--Имена ячеек-->
  235.            <tr class="name-slot">
  236.              <?PHP foreach ($showTables[0] as $tables => $value){?>
  237.                  <!--Имена ячеек-->
  238.                  
  239.                    <td> <?= $tables?></td>  
  240.                
  241.                 <!--Имена ячеек-->
  242.              <?PHP }?>
  243.                </tr>
  244.              <!--Имена ячеек-->
  245.            
  246.              <!--Даные ячееек-->
  247.              
  248.              <?PHP foreach ($showTables as $tables => $value){?>
  249.                  <!--данные ячеек-->
  250.                  <tr class="name-select">
  251.                  <?PHP foreach ($value as $k => $va){?>
  252.                  
  253.                    <td><?= $value[$k]?></td>
  254.                  
  255.                  <?PHP }?>  
  256.                 <!--данные ячеек-->
  257.                 </tr>
  258.              <?PHP }?>
  259.                
  260.          <?PHP } else {?>
  261.             Ничего не найдено
  262.          <?PHP }?>
  263.        </table>
  264.       <?PHP }?>
  265.       <!--< Отрисовка таблиц БД-->    
  266.   </body>  
  267. </html>
  268. <?PHP
  269.  $actionName = isset($_GET['action']) ? ucfirst($_GET['action']) : 'Show';
  270.  $actionName .= 'Action';
  271.  $actionName();
  272. ?>
  273.  


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

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

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

Заранее спасибо!
 
 Top
caballero
Отправлено: 23 Апреля, 2016 - 13:14:26
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




пагинатор дописать

и вообще есть таблица information_schema где данные по всем таблицам и столбцам - зачем мучатся с shoq table


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB