PUBLICIDADE

Autor

everton3x

Everton da Rosa

membro deste janeiro de 2007

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

A quanto tempo você já é desenvolvedor?

Construtor de tabelas - TableConstructor


Esta função cria uma tabela baseada numa consulta mysql com as seguintes características:
Paginação com número de linhas por página configurável;
Caixa de busca nos campos utilizados na consulta;
Linhas com cores alternadas configuráveis.
<?
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>

ArquivoTipoTamanhoHits 
tableConstructor.zipArquivo ZIP1,7 Kb473Baixar o Arquivo
Sim   Não   Este código foi útil para você?
NotaComentário
Ainda não foi enviado nenhum comentário.
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.