[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отображение списка таблиц БД
makc337
Добрый день.
Вывод списка баз и таблиц.



<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 - последняя

Заранее спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.