Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Buscador, tabla, columna, registro

Estas en el tema de Buscador, tabla, columna, registro en el foro de PHP en Foros del Web. Hola a todos, hoy hice este código (picapiedra) con el fin de dejar unos combos de búsqueda para poder realizarlas sin necesidad de inputs y ...
  #1 (permalink)  
Antiguo 04/06/2014, 12:58
Avatar de asus090102  
Fecha de Ingreso: mayo-2012
Ubicación: Ensenada- Buenos Aires
Mensajes: 67
Antigüedad: 11 años, 11 meses
Puntos: 1
Buscador, tabla, columna, registro

Hola a todos, hoy hice este código (picapiedra) con el fin de dejar unos combos de búsqueda para poder realizarlas sin necesidad de inputs y en la mayoría de los campos. Está hecho de esta forma porque todavía no le apliqué la función javascript que los actualice al seleccionar un dato en un solo php. Pero creo qu la idea del funcionamiento está clara .
Dejo el código para que vean de que hablo y mas abajo explico mi inquietud. No sean muuuuuy duros por mi falta de idea o prolijidad. Cualquier ayuda o aporte será recontra bienvenido.

Código PHP:
<?php
// Este es el listador de tablas en la base elegida.

// pagina1.php
$conexion mysql_connect("localhost""root""pass");
$consulta_tablas=mysql_query("show tables from base_de_datos_elegida");
?>
<html><body>
<form action="pagina2.php"method="post">
<tr><td><label for="tabla">FORMULARIO:</label><select name="tabla">
<option selected="" value="" >buscar</option>
<?php
while($fila=mysql_fetch_array($consulta_tablas))
{
echo 
"<option value='".$fila["0"]."' > ".$fila["0"]."</option>";
}
mysql_close($conexion);
?>  
</select></td></tr><br><br><tr>  
<td><input type="submit" id="boton_enviar" name="enviar" value="Enviar" /></td></tr>
</body></html>




<?php
//Seleccionada la tabla en la que deseamos realizar la búsqueda listamos las columnas (seleccionaremos la primer columna que es la que lleva el nombre pero mostramos la columna de observaciones donde le daremos el alias, justamente para que no se vea que estamos guardando realmente. ACLARO: Me falta el filtro NULL para que no liste los espacios vacíos.)

//pagina2.php
//Acá ya llamo al archivo de conecxion.php que anda por ahí dando vuetas.
$tabla $_POST['tabla'];
include (
"conexion.php");
$consulta_columna=mysql_query("show full columns from $tabla");
?>
<html><body>
<form action="pagina3.php"method="post">
<tr><td><label for="detalle_columna">INDICE:</label><select name="detalle_columna">
<option selected="" value="" >buscar</option>
<?php
while($fila=mysql_fetch_array($consulta_columna))
{
echo 
"<option value='".$fila["0"]."' > ".$fila["8"]."</option>";
}
mysql_close($conexion);
?>  
</select></td></tr><br><br><tr>  
<input OnFocus="this.blur()" type="hidden"  name="tabla" value="<? echo $tabla;?>" />

<td><input type="submit" id="boton_enviar" name="enviar" value="Enviar" /></td></tr>
</body></html> 

<?php
// Una vez seleccionada la columna listamos el contenido. Por ejemplo, seleccionamos la columna "nombre de usuario" y vemos todos los nombres en la lista.

// pagina3.php

$columna $_POST['detalle_columna'];
$tabla $_POST['tabla']; 
include (
"conexion.php");
$consulta_datos=mysql_query("select $columna from $tabla");
?>
<html><body>
<form action="pagina4.php"method="post">
<tr><td><label for="dato">DATO:</label><select name="dato">
<option selected="" value="" >buscar</option>
<?php
while($fila=mysql_fetch_array($consulta_datos))
{
echo 
"<option value='".$fila["0"]."' > ".$fila["0"]."</option>";
}
mysql_close($conexion);
?>  
</select></td></tr><br><br><tr>  
<input OnFocus="this.blur()" type="hidden"  name="tabla" value="<? echo $tabla;?>" />
<input OnFocus="this.blur()" type="hidden"  name="columna" value="<? echo $columna;?>" />

<td><input type="submit" id="boton_enviar" name="enviar" value="Enviar" /></td></tr>
</body></html> 




<?php
// Acá llega seleccionado "por ejemplo" el nombre de un usuario dentro de $dato. Lo que quisiera es mostrar un listado de todos los registros relacionados solo al registro $dato. Mi problema es que no se como hacer para que liste solo los registros de ese usuario solo. Así como está este código, me crea una lista nueva de cada un de los usuarios (una locura). Ya tengo la cabeza quemada y necesito de vuestra ayuda. Me podrían decir como crear un código donde: si $dato es igual al contenido dentro de la $columna traiga todos los datos (de todas las columnas) que le corresponda dentro de la $tabla.
   
//pagina4.php
$dato $_POST['dato'];
$columna $_POST['columna'];
$tabla $_POST['tabla'];
include (
"conexion.php");
$consulta=mysql_query("select * from $tabla");
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>listar</title>
<style>
</style>
</head>
<BODY STYLE="background: url(img/escudo.jpg) no-repeat scroll center;">
<label><h3>LISTADO:</h3></label>
<table cellpadding="0" cellspacing="0" border="4" style="text-align: center; border-color: #cc3333; ">
<tr>
<td><input type="input" name="1" value="COLUMNA 1"/></td>         
<td><input type="input" name="2" value="COLUMNA 2"/></td>         
<td><input type="input" name="3" value="COLUMNA 3"/></td>
<td><input type="input" name="4" value="COLUMNA 4"/></td>
<td><input type="input" name="5" value="COLUMNA 5"/></td>
<td><input type="input" name="6" value="COLUMNA 6"/></td>
</tr>
<?php
    
while ($fila=  mysql_fetch_array($consulta))
  {

?>
     <tr>
<td><?php echo$fila["0"];?></td>
<td><?php echo$fila["1"];?></td>
<td><?php echo$fila["2"];?></td>
<td><?php echo$fila["3"];?></td>
<td><?php echo$fila["4"];?></td>
<td><?php echo$fila["18"];?></td>
<td>
<div id="linear">
<a href="modifica_registro.php?id=<?php echo $fila["0"]?>" class="btn">MODIFICAR</a>
</div>
</tr>
<?php
}
?>
</table>
</body>
</html>
Desde ya muchísimas gracias!!

Etiquetas: buscador, columna, formulario, html, mysql, registro, select, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:24.