tableConstructor

Publicado por EVERTON DA ROSA 28/02/2007

[ Hits: 4.528 ]

Homepage: http://everton3x.github.io

Download tableConstructor.php




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.

  



Esconder código-fonte

<?
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>

Scripts recomendados

Previsão do tempo para Porto Alegre/RS

Automatizando tradução i18n do seu codigo

Contador de acessos 2004

Cron - Classe PHP para cálculo da diferença entre duas datas

Gerando Código de barras no padrão brasileiro compatível com Browsers Linux e Windows


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts