Автор Тема: Как да страницирам това  (Прочетена 592 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

svet1bg

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 1
  • Публикации: 124
Как да страницирам това
« -: 05 Април 2016, 14:11:08 »
Как мога да страницирам SHOW TABLES FROM...

Код: PHP
  1. <html>
  2.     <head>
  3.         <meta charset="UTF-8">
  4.         <meta name="author" content="svet1bg http://89.106.101.49/">
  5.         <title>TEST TABLES</title>
  6.     </head>
  7.     <body>
  8.         <?php
  9.         include '../../security/function.php';
  10.  
  11.         my_server_connection($myhost, $myusser, $mypass);
  12.  
  13.         $DataBaseName = 'test';
  14.         my_DatabaseSelection($DataBaseName);
  15.  
  16.         $sql = 'SHOW TABLES FROM ' . $DataBaseName . '';
  17.         $query = mysql_query($sql);
  18.  
  19.         while ($row = mysql_fetch_row($query)) {
  20.             echo 'Table name : ';
  21.             echo $row[0];
  22.             echo '<br>';
  23.         }
  24.         ?>
  25.     </body>
  26. </html>
  27.  

да се показват по 5 на страница например, и изобщо може ли SHOW TABLES FROM ....    да се страницира?

ДЕМО

Благодаря ви предварително.
« Последна редакция: 05 Април 2016, 20:22:17 от Avalanche »

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 269
  • Публикации: 2595
  • meow
Re: Как да страницирам това
« Отговор #1 -: 05 Април 2016, 20:43:47 »
Както всяко едно останало странициране ;)
Трябва ти да знаеш три неща - общ брой на записите (total), колко да се показват на страница (limit) и от къде да започнеш да ги гледаш (offset/page).

Ето ти един пример, който сковах набързо за 5 минути:
Код: PHP
  1. <?php
  2.  
  3. $mysqli = new mysqli('localhost', 'root', '', 'wordpress');
  4.  
  5. $query = $mysqli->query('SHOW TABLES FROM `wordpress`');
  6.  
  7. $total = $query->num_rows; // Общ брой записи
  8.  
  9. $data = array();
  10. while($row = $query->fetch_array()) {
  11.     $data[] = $row[0]; // Самите записи
  12. }
  13.  
  14. var_dump($data);
  15.  
  16. $limit = 5; // Покажи 5
  17. $offset = 0; // Започвайки от началото
  18.  
  19. // for ще брои от стойността на $offset, докато не стигне зададения лимит
  20. // Към лимита трябва да се добави и от къде е започнало, за да могат да работят и останалите страници
  21. for ($i = $offset; $i < $limit + $offset; $i++) {
  22.     var_dump($data[$i]);
  23. }
  24.  

Резултат:

Код: Bash
  1. MariaDB [wordpress]> SHOW TABLES FROM `wordpress`;
  2. +-----------------------+
  3. | Tables_in_wordpress   |
  4. +-----------------------+
  5. | wp_commentmeta        |
  6. | wp_comments           |
  7. | wp_links              |
  8. | wp_options            |
  9. | wp_postmeta           |
  10. | wp_posts              |
  11. | wp_term_relationships |
  12. | wp_term_taxonomy      |
  13. | wp_termmeta           |
  14. | wp_terms              |
  15. | wp_usermeta           |
  16. | wp_users              |
  17. +-----------------------+
  18. 12 rows in set (0.00 sec)

Код: Bash
  1. ava@localhost| html $ php index.php
  2. # всички записи
  3. array(12) {
  4.   [0]=>
  5.   string(14) "wp_commentmeta"
  6.   [1]=>
  7.   string(11) "wp_comments"
  8.   [2]=>
  9.   string(8) "wp_links"
  10.   [3]=>
  11.   string(10) "wp_options"
  12.   [4]=>
  13.   string(11) "wp_postmeta"
  14.   [5]=>
  15.   string(8) "wp_posts"
  16.   [6]=>
  17.   string(21) "wp_term_relationships"
  18.   [7]=>
  19.   string(16) "wp_term_taxonomy"
  20.   [8]=>
  21.   string(11) "wp_termmeta"
  22.   [9]=>
  23.   string(8) "wp_terms"
  24.   [10]=>
  25.   string(11) "wp_usermeta"
  26.   [11]=>
  27.   string(8) "wp_users"
  28. }
  29.  
  30. # само първите 5 от тях, смени offset на 5 за да се покажат следващите 5
  31. string(14) "wp_commentmeta"
  32. string(11) "wp_comments"
  33. string(8) "wp_links"
  34. string(10) "wp_options"
  35. string(11) "wp_postmeta"
  36.  
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

svet1bg

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 1
  • Публикации: 124
Re: Как да страницирам това
« Отговор #2 -: 06 Април 2016, 12:49:10 »
А направено така на един публичен съпвър дали ще имам достъп до тази MSQL заявка ?

$sql = 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = "' . $DataBaseName . '" LIMIT ' . $offset . ',' . $limit . '';

Код: PHP
  1. <html>
  2.     <head>
  3.         <meta charset="UTF-8">
  4.         <meta charset="UTF-8">
  5.         <meta name="description" content="PICTURES FROM BULGARIA KAMELKA GALLERY">
  6.         <meta name="keywords" content="HTML,CSS,XML,JavaScript">
  7.         <meta name="author" content="svet1bg http://89.106.101.49/">
  8.         <link rel="stylesheet" type="text/css" href="css.css">
  9.         <title>PAGINATION SHOW TABLES</title>
  10.         <!-- <title></title> -->
  11.     </head>
  12.     <body>
  13.         <div id="konteiner">
  14.             <?php
  15.             include '../../security/function.php';
  16.             my_server_connection($myhost, $myusser, $mypass);
  17.  
  18.             $DataBaseName = 'test';
  19.  
  20.             $sql = 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = "' . $DataBaseName . '"';
  21.             $query = mysql_query($sql);
  22.  
  23.             $allRows = mysql_num_rows($query);
  24.             $limit = 5;
  25.             $cntPage = ceil($allRows / $limit);
  26.  
  27.             if ($_GET['page']) {
  28.                 $page = trim(addslashes($_GET['page']));
  29.  
  30.                 if ($page <= 0) {
  31.                     header('Location:?page=1');
  32.                 }
  33.                 elseif ($page > $cntPage) {
  34.                     header('Location:?page=1');
  35.                 }
  36.  
  37.                 $offset = ($page - 1) * 5;
  38.  
  39.                 echo 'Брой таблици в ДБ = ' . $allRows;
  40.                 echo '<br>';
  41.                 echo 'Брой елемента на страница = ' . $limit;
  42.                 echo '<br>';
  43.                 echo 'Започвайки от = ' . $offset;
  44.                 echo '<br>';
  45.                 echo 'Брой страници = ' . $cntPage;
  46.                 echo '<br>';
  47.                 echo '<hr>';
  48.  
  49.  
  50.  
  51.                 $sql = 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = "' . $DataBaseName . '" LIMIT ' . $offset . ',' . $limit . '';
  52.                 $query = mysql_query($sql);
  53.                 while ($row = mysql_fetch_row($query)) {
  54.                     echo 'Table name : ';
  55.                     echo $row[0];
  56.                     echo '<br>';
  57.                 }
  58.             }
  59.             else {
  60.                 header('Location:?page=1');
  61.             }
  62.  
  63.             echo '<hr>';
  64.  
  65.             if ($page <= 1) {
  66.                 echo '<a> << </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  67.             }
  68.             else {
  69.                 echo '<a href="?page=1"> << </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  70.             }
  71.             if (($page - 1) <= 0) {
  72.                 $page = 1;
  73.                 echo '<a> < </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  74.             }
  75.             else {
  76.                 echo '<a href="?page=' . ($page - 1) . '"> < </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  77.             }
  78.             ////////////////////////////////////////////////////
  79.  
  80.             for ($i = 1; $i <= $cntPage; $i++) {
  81.                 echo '<a href="?page=' . ($i) . '"> ' . $i . ' </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  82.             }
  83.  
  84.             ////////////////////////////////////////////////////
  85.             if (($page + 1) > $cntPage) {
  86.                 $page = $cntPage;
  87.                 echo '<a> > </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  88.             }
  89.             else {
  90.                 echo '<a href="?page=' . ($page + 1) . '"> > </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  91.             }
  92.             if ($page >= $cntPage) {
  93.                 echo '<a> >> </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  94.             }
  95.             else {
  96.                 echo '<a href="?page=' . $cntPage . '"> >> </a>&nbsp;&nbsp;|&nbsp;&nbsp;';
  97.             }
  98.             ?>
  99.         </div>
  100.     </body>
  101. </html>
  102.  


ДЕМО
« Последна редакция: 06 Април 2016, 12:51:08 от svet1bg »

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 190
  • Публикации: 3623
Re: Как да страницирам това
« Отговор #3 -: 06 Април 2016, 13:56:07 »
Цитат
А направено така на един публичен съпвър дали ще имам достъп до тази MSQL заявка ?
Зависи от правата ти. Дали е публичен или локален сървър всичко се свежда до тва :) 
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html