tableConstructor
Publicado por EVERTON DA ROSA 28/02/2007
[ Hits: 5.150 ]
Homepage: http://everton3x.github.io
Este script PHP gera uma tabela de forma automática com dados de um banco no MySQL.
Características:
- Pode ser ativada na página apenas com uma linha de código;
- Não há limite de campos a serem exibidos;
- Possui paginação automática e caixa de busca com suporte a caracter
coringa;
- Mostra as linhas com duas cores intercaladas.
- Envia o conteúdo da célula selecionada para outra página para que seja manipulada.
<?
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('information_schema') or die(mysql_error());
function tableConstructor($tabela,$campos,$cores,$extra,$np,$to){
//monta caixa de busca
$array=explode(',',$campos);
while(list($k,$c)=each($array)){
$cbuscar.='<input name="campo" type="radio" value="'.$c.'">'.strtoupper($c).'<br>';
}//fim while campos de busca
$cxbuscar='<fieldset><legend>Buscar</legend><form action="" method="get" name="fbusca">
<label for buscar>Texto para buscar (Use "%" como caracter coringa)</label>
<input id="buscar" name="buscar" type="text" size="25"><input name="" type="submit" value="Buscar"><br>
'.$cbuscar.'
</form></fieldset>';
echo $cxbuscar;
//fim caixa de busca
//monta sql
$sql="SELECT $campos FROM $tabela";
if(isset($_GET[where])){
$where=$_GET[where];
}elseif(isset($_GET[buscar]) && isset($_GET[campo])){
$array=explode(" ",$_GET[buscar]);
$campo=$_GET[campo];
$where=" WHERE";
while(list($k,$p)=each($array)){
$where.=" $campo LIKE '$p' AND";
}//fim while where
$where=substr($where,0,-3);
}else{
$where='';
}//fim if where
$where=stripslashes($where);
$sql.=" $where";
if(!isset($_GET[extra])){
}else{
$extra=$_GET[extra];
}//fim if extra
$sql.=" $extra";
if(!isset($_GET[order])){
$order="ORDER BY $campos ASC";
}else{
$order=$_GET[order];
}
$sql.=" $order";
$sqlaux=$sql;
if(!isset($_GET[limit])){
$limit=" LIMIT 0,$np";
}else{
$a=$_GET[limit];
$limit=$a;
}
$sql.=$limit;
//fim montagem sql
echo "<fieldset><legend>Sua consulta no MySQL foi:</legend><code>$sql</code></fieldset>";
//monta paginação
$paginas='<a href="?">Todos</a>';
$q=mysql_query($sqlaux);
$nl=mysql_num_rows($q);
$n=$nl/$np;
$limit=" LIMIT 0,$np";
$ctrl=0;
while($ctrl<$n){
$ctrl++;
$paginas.='[<a href="?where='.$where.'&extra='.$extra.'&order='.$order.'&limit='.$limit.'">'.$ctrl.'</a>]';
//muda o limit
$limita=substr($limit,0,7);
$limitb=substr($limit,7);
$limitc=explode(',',$limitb);
$limitd=$limitc[0]+$np;
$limite=$limitd.','.$np;
$limit=$limita.' '.$limite;
}//fim while paginação
echo "<fieldset>O total de itens do resultado é $nl distribuídos em $ctrl páginas</fieldset>";
echo "<fieldset>$paginas</fieldset>";
// montagem da tabela
$q=mysql_query($sql);
$table='<fieldset><table width="100%" border="0"><tr>';
//monta título
//'[<a href="?where='.$where.'&extra='.$extra.'&order='.$order.'&limit='.$limit.'">'.$ctrl.'</a>]';
$acampos=explode(',',$campos);
while(list($k,$f)=each($acampos)){
$table.='<td align="center">[<a href="?where='.$where.'&extra='.$extra.'&order=ORDER BY '.$f.' ASC&limit= LIMIT 0,'.$np.'">A</a>][<a href="?where='.$where.'&extra='.$extra.'&order=ORDER BY '.$f.' DESC&limit= LIMIT 0,'.$np.'">D</a>]<strong>'.strtoupper($f).'</strong></td>';
}//fim while campos
$table.='</tr>';
//monta linhas do resultado
$bcampos=explode(',',$campos);
$num=2;
while($result=mysql_fetch_array($q)){
$index=$num % 2;
$num++;
$cor=$cores[$index];
$table.='<tr bgcolor="'.$cor.'">';
while(list($k,$g)=each($bcampos)){
$dado=$result[$g];
$table.='<td onClick="javascript:location.href=\''.$to.'?'.$g.'='.$dado.'\'">'.$dado.'</td>';
}//fim while colunas
reset($bcampos);
$table.='</tr>';
}//fim while linhas
$table.='</table></fieldset>';
echo $table;
//fim tabela
echo "<fieldset>$paginas</fieldset>";
//fim paginação
}//fim função
?>
<html>
<head>
<title>tableConstructor</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
//tableConstructor("nome da tabela","campos que vão aparecer na consulta, separados por vírgula",array("cor1","cor2"),"opções extras da consulta","nr de resultados por página","página de destino para manipular uma linha escolhida");
tableConstructor("COLLATIONS","ID,COLLATION_NAME,CHARACTER_SET_NAME",array("#CCCCCC","#FFFFFF")," GROUP BY CHARACTER_SET_NAME","25","teste.php");
?>
</body>
</html>
Monitoramento simples de servidores [versão 1.0] (corrigido)
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Alguém já testou o novo COSMIC Desktop? O que achou? (4)
Não consigo instalar distro antiga no virtualbox nem direto no hd (29)
queria saber como posso alterar a frequencia do meu ryzen 2300u pro (3)









