c3sarin Posted March 14, 2007 Report Share Posted March 14, 2007 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 More sharing options...
HostMan Posted May 4, 2007 Report Share Posted May 4, 2007 won la kagaste ...tremendo kodigo XD t pasaste c agradece Link to comment Share on other sites More sharing options...
alberto33 Posted July 3, 2007 Report Share Posted July 3, 2007 gracias, por tu trabajo, mas de 140 visitas y solo 2 respuestas, que les cuesta a algunos, y otra vez gracias Link to comment Share on other sites More sharing options...
awaite Posted July 16, 2007 Report Share Posted July 16, 2007 hermano.... donde estan los archivos js/solonumeros.js y js/validarfecha.js Link to comment Share on other sites More sharing options...
c3sarin Posted July 17, 2007 Author Report Share Posted July 17, 2007 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 More sharing options...
awaite Posted July 19, 2007 Report Share Posted July 19, 2007 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 More sharing options...
Ro0feR ! Posted August 5, 2007 Report Share Posted August 5, 2007 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 More sharing options...
ningal Posted August 16, 2007 Report Share Posted August 16, 2007 (edited) tremendo trbajo locooooooo !!!!!!!!!!!!! :bravo: chuchhhhhhhhhhh tendre que analisarlo pero creo que me demorare un año en entenderlo gracias =) =D Edited August 16, 2007 by ningal Link to comment Share on other sites More sharing options...
c3sarin Posted September 22, 2007 Author Report Share Posted September 22, 2007 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 More sharing options...
sttull Posted October 8, 2007 Report Share Posted October 8, 2007 tremendo aporte compa, gracias te pasaste Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now