Jump to content

listar los datos de una tabla


Recommended Posts

Hola cabros !!

 

Aca les voy a dejar un php que es capaz de listar datos de una tabla cualquiera, de una base de datos cualquiera...

 

Se puede ordenar los datos por un campo, y ordenar de acuerdo a parametros medios chantas, pero = algo es algo...

 

Lo hice hace un tiempo para un proyecto chico, algunas cosas estan en ingles, ja ja... Si quieren mas detalles de como funka escriben aca mismo...

 

cualquier critica constructiva es bienvenida...

 

Si quieren que siga subiendo material, por lo menos escriban "gracias" OK ???

 

**************************

<html>

<head>

<!-- Bloqueo de la pagina pa que no puedan copiar nada -->

<script language="Javascript">

<!-- Begin

document.oncontextmenu = function(){return false}

// End -->

</script>

<script language="Javascript">

<!-- Begin

function disableselect(e){

return false

}

function reEnable(){

return true

}

document.onselectstart=new Function ("return false")

if (window.sidebar){

document.onmousedown=disableselect

document.onclick=reEnable

}

// End -->

</script>

 

 

<link rel="STYLESHEET" type="text/css" href="formato.css">

<script SRC="js/solonumeros.js"></script>

<script SRC="js/validarfecha.js"></script>

<title>Tables</title>

<script>

function enviar_info_tabla(form)

{

if (form.nro_resultados.value=='')

{ alert("Anote el nro de resultados"); return true; }

if (form.nombre_tabla.value!='CHOOSE A TABLE')

{

form.posteo.value=0;

form.submit();

}

}

function enviar_info_tabla1(form) //al cambiar el desplegable

{

if (form.nro_resultados.value=='')

{ alert("Complete number of results"); return true; }

if (form.nombre_tabla.value!='CHOOSE A TABLE')

{

form.posteo.value=1;

form.submit();

}

}

function enviar_info_tabla2(form) //al cambiar el desplegable

{

if (form.nro_resultados.value=='')

{ alert("Complete number of results"); return true; }

if (form.nombre_tabla.value!='CHOOSE A TABLE')

{

form.posteo.value=2;

form.submit();

}

}

function enviar_info_tabla_fecha(form) //al cambiar el campo de las fechas

{

if (form.nro_resultados.value=='')

{ alert("Complete the number of results"); return true; }

if (form.nombre_tabla.value=='CHOOSE A TABLE')

{alert("CHOOSE A TABLE");return true;}

if (form.campo_fecha_consulta.value=='CHOOSE A COLUMN')

{;return true;}

if (form.fechainicio_consulta.value.length<10)

{ alert("Complete dates, format dd/mm/aaaa"); return true; }

if (form.fechatermino_consulta.value.length<10)

{ alert("Complete dates, format dd/mm/aaaa"); return true; }

form.posteo.value=1;

form.submit();

}

</script>

</head>

<body>

<center>

<h3>Table's report</h3>

<?

if(isset($_POST["nro_resultados"])){

$tabla=$_POST["nombre_tabla"];

$nro_resultados=$_POST["nro_resultados"];

$posteo=$_POST["posteo"];

}else{

$nro_resultados=30;

$tabla="nn";

$posteo="";

}

 

if(isset($_POST["fechainicio_consulta"])){

$fechainicio_consulta=$_POST["fechainicio_consulta"];

$fechatermino_consulta=$_POST["fechatermino_consulta"];

}else{

$fechainicio_consulta="";

$fechatermino_consulta="";

}

?>

 

<form action="administrador_consultas.php" method=post name="form">

<input type='hidden' name='posteo' value='<? echo $posteo ?>'>

<TABLE border=0 cellPadding=1 cellSpacing=1 align='left'>

 

<TR>

<TD class=formulario> CHOOSE A TABLE</TD>

<TD class=formulario>

<select size="1" name="nombre_tabla" class=inputs onChange="enviar_info_tabla2(this.form)">

<option value='CHOOSE A TABLE'>CHOOSE A TABLE</option>

<? //busco las tablas que componen Telegestor..

require("conexion.php");

require("php/00fechas.php");

$search_tablas=mysql_db_query("$bd_base","SHOW TABLES") or die(mysql_error());

while($row = mysql_fetch_array($search_tablas)) {

$tablilla=strtolower($row[0]);

if (($tablilla!="privilegio") and ($tablilla!="postalcode") and ($tablilla!="usuario") and ($tablilla!="control_usuario") and ($tablilla!="postcode")){

echo "<option value";

if ($tablilla==$tabla)

{

echo " selected ";

}

echo"='".$tablilla."'>".$tablilla."</option>";

}

}

?>

</select>

</TD>

 

<TD class=formulario> Results by page</TD>

<TD class=formulario><input size="2" type="text" name="nro_resultados" autocomplete="off" value='<? echo $nro_resultados ?>'class=inputs maxlength='2' onKeyPress="return acceptNum(event)"></TD>

<?

/*************

**************** HACIENDO FILTROS

*************/

if ($tabla!="nn"){//existe una tabla

 

/* Para hacer los filtros, necesito los

nombres de los campos y su tipo */

$search_info_tabla=mysql_db_query($bd_base,"DESCRIBE $tabla") or die(mysql_error());

$listado_campos=array();

$listado_campos_cifras=array();

$desc_campos_cifras=array();

$listado_campos_fechas=array();

$desc_campos_fechas=array();

$listado_campos_otros=array();

$desc_campos_otros=array();

 

//El primer campo es la clave de la tabla, el cual no se va a mostrar, para saber cuándo se recorre el primero uso una variable

$campo_clave=0;

 

while($row = mysql_fetch_array($search_info_tabla)) {

if ($campo_clave==0){//Estoy en el campo clave de la tabla, a si que me lo salto, aumentando la variable para que considere los demás campos que vienen...

$campo_clave=$campo_clave+1;

}else{//El campo sirve, no es la clave de la tabla...

$info_all_campo=$row[1]; // esto forma algo como int(8) y hay que sacarle

// el parentesis !!!

$separacion=explode("(",$info_all_campo);

$info_campo=$separacion[0];

$campo1=$row[0]; //este es el nombre del campo

 

$listado_campos[]=$campo1; //lo paso al array de todos los campos

/* Segun el tipo veo a que array va a parar */

if ($info_campo=="date"){

$listado_campos_fechas[]=$info_campo;

$desc_campos_fechas[]=$campo1;

}else{

if (($info_campo=="int") or ($info_campo=="float")){

$listado_campos_cifras[]=$info_campo;

$desc_campos_cifras[]=$campo1;

}else{

$listado_campos_otros[]=$info_campo;

$desc_campos_otros[]=$campo1;

}

}//cerrando los if que ven a que array mandar la info del campo

 

}//cerrando el If que revisa si de debe considerar el campo o no...

 

}//cerrando el while que forma los campos y la info

/* Doy la opción de ordenar la página */

?>

<TD class=formulario> Order by:</TD>

<TD class=formulario>

<select size="1" name="campo_orden_consulta" class=inputs onChange="enviar_info_tabla1(this.form)">

<?

foreach ($listado_campos as $listado_campos)

{

echo "<option value";

if ((isset($_POST["campo_orden_consulta"])) and ($_POST["campo_orden_consulta"]==$listado_campos))

{

echo " selected ";

}//cerrando el If

echo"='".$listado_campos."'>".$listado_campos."</option>";

}//cerrando el Foreach

echo "</td>";

echo "<td class=formulario> type order </td>";

echo "<td class=formulario><select size='1' name='orden_consulta' class=inputs onChange='enviar_info_tabla1(this.form)'>";

if ((isset($_POST["orden_consulta"])) and ($_POST["orden_consulta"]=="Desc"))

{

echo "<option value='Asc'>Asc</option>";

echo "<option value='Desc' selected>Desc</option>";

}else{

echo "<option value='Asc' selected>Asc</option>";

echo "<option value='Desc'>Desc</option>";

}//cerrando el If

echo "</select></td>";

 

echo "</tr>";

/* Si hay fechas, montos, u otros,se abre otra tabla */

if ((isset($listado_campos_fechas[0])) or (isset($listado_campos_fechas[0])) or (isset($listado_campos_fechas[0]))){

echo "</table><br><br><br><table align='left'><tr>";

 

/* Si hay fechas doy la facilidad de meter un rango */

if (isset($listado_campos_fechas[0])){

$f=0; // lo ocupo pa hallar el nombre del campo que le corresponde

// a la info del campo que se va a revisar...

echo "<td class=formulario><select size='1' name='campo_fecha_consulta' class=inputs onChange='enviar_info_tabla_fecha(this.form)'>";

echo "<option value='CHOOSE A COLUMN'>CHOOSE A COLUMN</option>";

foreach ($listado_campos_fechas as $listado_campos_fechas)

{

echo "<option value";

if ((isset($_POST["campo_fecha_consulta"])) and ($_POST["campo_fecha_consulta"]==$desc_campos_fechas[$f]))

{

echo " selected ";

}//cerrando el If

echo"='".$desc_campos_fechas[$f]."'>".$desc_campos_fechas[$f]."</option>";

$f=$f+1;

}//cerrando el Foreach

echo "</select> Between <INPUT size='11' type='text' class=inputs maxlength='10' name='fechainicio_consulta' value='".$fechainicio_consulta."' onKeyUp = 'this.value=formateafecha(this.value);'> and <INPUT size='11' type='text' class=inputs maxlength='10' name='fechatermino_consulta' value='".$fechatermino_consulta."'onKeyUp = 'this.value=formateafecha(this.value);'></td>";

}//cerrando If que revisa que haya campos de fechas

 

/* Si hay cifras doy la facilidad de meter un rango */

if (isset($listado_campos_cifras[0])){

$f=0; // lo ocupo pa hallar el nombre del campo que le corresponde

// a la info del campo que se va a revisar...

echo "<td class=formulario><select size='1' name='campo_cifra_consulta' class=inputs onChange='enviar_info_tabla1(this.form)'>";

foreach ($listado_campos_cifras as $listado_campos_cifras)

{

echo "<option value";

if ((isset($_POST["campo_cifra_consulta"])) and ($_POST["campo_cifra_consulta"]==$desc_campos_cifras[$f]))

{

echo " selected ";

}//cerrando el If

echo"='".$desc_campos_cifras[$f]."'>".$desc_campos_cifras[$f]."</option>";

$f=$f+1;

}//cerrando el Foreach

echo "</select> Between <INPUT size='15' maxlength=15 type='text' class='inputs' name='cifrainicio_consulta' autocomplete='off' onKeyPress='return acceptNum(event)'> and <INPUT size='15' maxlength=15 type='text' class='inputs' name='cifratermino_consulta' autocomplete='off' onKeyPress='return acceptNum(event)'></td>";

}//cerrando If que revisa que haya campos de cifras

 

/* Si hay otros valores, doy la facilidad de meter un valor

pa saber si hay algo al menos parecido */

if (isset($listado_campos_otros[0])){

echo "</tr><tr>"; // los tiro 1 linea mas abajo

$f=0; // lo ocupo pa hallar el nombre del campo que le corresponde

// a la info del campo que se va a revisar...

echo "<td class=formulario><select size='1' name='campo_varchar_consulta' class=inputs onChange='enviar_info_tabla1(this.form)'>";

foreach ($listado_campos_otros as $listado_campos_otros)

{

echo "<option value";

if ((isset($_POST["campo_varchar_consulta"])) and ($_POST["campo_varchar_consulta"]==$desc_campos_otros[$f]))

{

echo " selected ";

}//cerrando el If

echo"='".$desc_campos_otros[$f]."'>".$desc_campos_otros[$f]."</option>";

$f=$f+1;

}//cerrando el Foreach

echo "</select> With value <INPUT size='20' maxlength=60 type='text' class='inputs' name='texto_consulta' autocomplete='off'></td>";

}//cerrando If que revisa que haya campos de cifras

 

echo "</tr>";

}//cerrando el If que ve si existe algún array de un campo

echo "</table><br>";

echo "<center><input type='button' name'ver' value='View' class='inputs' OnClick=\"enviar_info_tabla2(this.form)\"></center>";

}else{//no hay tabla escogida, solo cierro la tabla

echo "</tr></table>";

} //cerrando el If que revisa si hay una tabla

 

/*************

**************** FIN HACIENDO FILTROS

*************

*/

 

 

//******************************

///////////////////////////////

//******************************* MOSTRANDO RESULTADO DE CONSULTA

///////////////////////////////

 

if ($tabla!="nn"){//existe una tabla

 

if(!isset($_POST["nro_pagina_resultado"])){

$pg=0;

}else{

$pg=$_POST["nro_pagina_resultado"];

}

/* Si posteo vale 1 o 2 pg debe valer cero !! */

if (($posteo==1) or ($posteo==2)){

$pg=0;

}

 

$base=$bd_base;

$cantidad=$nro_resultados; // cantidad de resultados por página

$inicial = $pg * $cantidad;

 

/* Aca voy formando la super consultilla, a lo que salga (pa variar) */

$consultilla="SELECT * FROM $tabla ";

 

if ((isset($_POST["fechainicio_consulta"])) and ($posteo!=2) and ($_POST["campo_fecha_consulta"]!="CHOOSE A COLUMN")){

//quiere decir que hay que filtrar por fecha

$fechainicio_SQL=cambiaf_a_mysql($_POST["fechainicio_consulta"]);

$fechatermino_SQL=cambiaf_a_mysql($_POST["fechatermino_consulta"]);

$consultilla=$consultilla." WHERE ".$_POST["campo_fecha_consulta"]." BETWEEN ' ".$fechainicio_SQL."' and '".$fechatermino_SQL."' ";

 

}//cerrando If que revisa si hay que filtrar por fecha...

 

 

if ((isset($_POST["campo_orden_consulta"])) and ($posteo!=2)){

$consultilla=$consultilla." order By ".$_POST["campo_orden_consulta"]." ".$_POST["orden_consulta"]." ";

}

 

$pegar = $consultilla."LIMIT ".$inicial.",".$cantidad;

$cad = mysql_db_query($base,$pegar) or die (mysql_error());

//echo $pegar;

$contar = $consultilla;

$contarok= mysql_db_query($base,$contar);

$total_records = mysql_num_rows($contarok);

$pages = intval($total_records / $cantidad);

 

echo "<br><br><br><center><TABLE><tr>";

 

/* Para formar el encabezado de la tabla necesito los

nombres de los campos */

$nro_campos=0; // es un contador

 

//El primer campo es la clave de la tabla, el cual no se va a mostrar, para saber cuándo se recorre el primero uso una variable

$campo_clave=0;

 

$search_info_tabla=mysql_db_query($bd_base,"DESCRIBE $tabla") or die(mysql_error());

while($row = mysql_fetch_array($search_info_tabla)) {

if ($campo_clave==0){//no lo pezco

$campo_clave=$campo_clave+1; //Para considerar los demás..

$nro_campos=$nro_campos+1;

}else{

 

$campo1=$row[0];

$nro_campos=$nro_campos+1;

echo "<th>$campo1</th>";

}//cerrando el If que revisa si hay que considerar el campo

}//Cerrando el while

echo "</tr><tr>";

while($row = mysql_fetch_array($cad)){

For ($i=1;$i<$nro_campos;$i++)

{

$valor_campo=$row[$i];

//Pruebo si es fecha...

$valor_campo_fecha=cambiaf_a_normal($valor_campo);

if ($valor_campo_fecha=="//"){//No es fecha..

echo "<td>".$valor_campo."</td>";

}else{//Es fecha

echo "<td>".$valor_campo_fecha."</td>";

}//cerrando if que revisa si el campo es fecha

 

}//cerrando el For

echo "</tr>";

}//cerrando el while

echo "</tr>";

echo "</table>";

 

 

//<<<<<<<< paginacion

if($pages<>0){//solo en ese caso se produce la paginación...

?>

Numero de pagina: <select size="1" name="nro_pagina_resultado" class=inputs onChange="enviar_info_tabla(this.form)">

?>

<?

For ($i=0;$i<$pages;$i++)

{

echo "<option value";

if ($pg==$i)

{

echo " selected ";

}//cerrando el If

$paginita=$i+1;

echo"='".$i."'>".$paginita."</option>";

}//cerrando el For

}//cerrando If que ve si es necesaria la paginación...

//>>>>>>>> paginacion

 

}//cerrando If que revisa que exista una tabla

?>

</form>

</body>

</html>

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...
  • 2 weeks later...

hermano.... donde estan los archivos js/solonumeros.js y js/validarfecha.js

 

Lo unico que hacen son validar lo que el usuario escribe en los cuadros de texto, el primero como su nombre lo dice valida que solo escriba numeros, y el segundo valida que la fecha este en formato dd/mm/aaaa,,, pero con js no basta ya que con copy/paste el usuario puede meter lo que sea,,,,

 

en resumen, sin esos archivos el cuento funciona igual...

Link to comment
Share on other sites

hermano.... donde estan los archivos js/solonumeros.js y js/validarfecha.js

 

Lo unico que hacen son validar lo que el usuario escribe en los cuadros de texto, el primero como su nombre lo dice valida que solo escriba numeros, y el segundo valida que la fecha este en formato dd/mm/aaaa,,, pero con js no basta ya que con copy/paste el usuario puede meter lo que sea,,,,

 

en resumen, sin esos archivos el cuento funciona igual...

 

 

Ok, hermano gracias

Link to comment
Share on other sites

  • 3 weeks later...

primero, gracias por tu gran aportazo.

 

segundo, como la conecto a la base de datos, cache que en el codigo sale en una parte "conexion.php", cree el script con ese nombre para ver si se me conectaba a la base de dato pero no paso nada, si me pudieras ayudar bkn =)

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

primero, gracias por tu gran aportazo.

 

segundo, como la conecto a la base de datos, cache que en el codigo sale en una parte "conexion.php", cree el script con ese nombre para ver si se me conectaba a la base de dato pero no paso nada, si me pudieras ayudar bkn =)

Aca va lo que contiene conexion.php

 

<?php

$bd_host = "localhost";

$bd_usuario = "c3sarin";

$bd_password = "pasguord";

$bd_base = "new_base";

$con = mysql_connect($bd_host, $bd_usuario, $bd_password);

mysql_select_db($bd_base, $con);

?>

 

tremendo trbajo locooooooo !!!!!!!!!!!!! :bravo:

chuchhhhhhhhhhh tendre que analisarlo pero creo que me demorare un año en entenderlo gracias

=)

=D

Ja, ja, ja, cualquier duda pregunte nomás...

Link to comment
Share on other sites

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...