tableConstructor
Publicado por EVERTON DA ROSA 28/02/2007
[ Hits: 5.106 ]
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>
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (3)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









