Foros del Web » Programando para Internet » PHP »

como extraer datos de una bd con un formulario de busqueda

Estas en el tema de como extraer datos de una bd con un formulario de busqueda en el foro de PHP en Foros del Web. lo que pasa es que tengo un formulario de registro de alumnos de una guarderia y tengo que llenar los datos del formulario para que ...
  #1 (permalink)  
Antiguo 07/03/2009, 18:06
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años, 5 meses
Puntos: 9
Sonrisa como extraer datos de una bd con un formulario de busqueda

lo que pasa es que tengo un formulario de registro de alumnos de una guarderia
y tengo que llenar los datos del formulario para que se guarden en la bd lo que quisiera es extraer dichos datos con un formulario de busqueda ya sea por alumno o por algun numero de id
tengo el script de extraccion de informacion de la bd pero lo que quiero es que si quiero encontrar algun alumno poderlo buscar con un formulario no se si me explico aqui esta el script en php

Código PHP:
<?php
$conexion 
mysql_connect("localhost""------""-------");
mysql_select_db("--------"$conexion);

$queEmp "SELECT * FROM usuarios ORDER BY username ASC";
$resEmp mysql_query($queEmp$conexion) or die(mysql_error());
$totEmp mysql_num_rows($resEmp);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejemplo PHP-MySQL</title>
<style type="text/css">
<!--
body {
    font-family: "Trebuchet MS", Tahoma, Verdana;
    font-size: 12px;
    font-weight: normal;
    color: #666666;
    text-decoration: none;
    padding: 20px;
}
h4 {
    color: #CC0000;
}
-->
</style>
</head>
<body>
<h4>Informacion personal</h4>
<?php 
if ($totEmp0) {
    while (
$rowEmp mysql_fetch_assoc($resEmp)) {
        echo 
"Nombre: <strong>".$rowEmp['nombre']."</strong><br></br>";
        echo 
"Apellidos: ".$rowEmp['apellidos']."<br></br>";
        echo 
"Usuario: ".$rowEmp['username']."<br></br>";
        echo 
"Telefono: ".$rowEmp['telefono']."<br></br>";
    
    }
}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 07/03/2009, 18:18
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: como extraer datos de una bd con un formulario de busqueda

utiliza un formulario html con metodo post o get, luego en el script que procesador, recibes la variable con $_POST o $GET (dependiendo del método que hayas puesto en tu formulario html). luego de ello en tu consulta haces esto

$var=$_POST['var'];//siendo el indice var el nombre de tu campo de texto donde ingresas el dato.
select * from t where c=$var

t=tabla, c=campo con lo que deseas comparar
para finalizar debes de validar y hacer filtros a la variable.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #3 (permalink)  
Antiguo 07/03/2009, 18:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: como extraer datos de una bd con un formulario de busqueda

bueno primero en el HTML debes poner el siguiente formulario te voy a poner el ejemplo solo con buscar por nombre vos trata de hacer lo otro es todo igual.

bien empecemos

Archivo HTML (Formulario)
Código html:
Ver original
  1. <form method="post" action="archivo_destino.php" />
  2. Nombre del Alumno: <input type="text" name="nomb" size="24" maxlength="24" /><br /><br />
  3. <input type="submit" value="Buscar por Nombre" />
  4. </form>
Bien como dije en el html pones ese formulario, fijate en el input tipo text size es el tamaño del espacio para escribir y maxlength es el maximo de caracteres que podes escribir.

Bien pasamos al codigo PHP en php pones lo siguiente vamos a suponer uqe la tabla se llama "alumnos" y la columna nombre se llama "nombre"

Codigo PHP: (recuerda que este archivo debes llamarlo como el archivo que pusiste en el formulario html donde dice action="archivo_destino.php" (en este caso debiera llamarse archivo_destino.php)

Código php:
Ver original
  1. //TOMAMOS LA VARIABLE NOMBRE DEL FORMULARIO
  2. $nombre= addslashes($_POST['nomb']);
  3. //conectamos a la base de datos y seleccionamos la database
  4. $conn = mysql_connect ("host", "user", "pass");
  5.  
  6. // definimos la consulta
  7. $consulta = "SELECT * FROM alumnos WHERE nombre='$nombre';";
  8.  
  9. //realizamos las consulta
  10. $result = mysql_query($consulta) or die (mysql_error());
  11.  
  12. //si no se llevo a cabo escribir lo siguiente y salir de php
  13. if (!$result)
  14. {
  15.    echo "No se pudo llevar a cabo la busqueda";
  16.    exit;
  17. }
  18.  
  19. //contamos los resultados
  20. $totalum = mysql_num_rows($result);
  21.  
  22. // Y ACA AÑADIMOS TU CODIGO
  23. if ($totalum> 0) {
  24.     while ($rowalum = mysql_fetch_assoc($result)) {
  25.         echo "Nombre: <strong>".$rowalum['nombre']."</strong><br></br>";
  26.         echo "Apellidos: ".$rowalum['apellidos']."<br></br>";
  27.         echo "Usuario: ".$rowalum['username']."<br></br>";
  28.         echo "Telefono: ".$rowalum['telefono']."<br></br>";
  29.      
  30.     }
  31. }

creo qeu eso seria todo

Espero qeu te sirva saludos.

EDIT: si quieres buscar que coincida en mas de un campo puedes hacer lo siguiente en el query es decir la consulta le añades AND campotabla='$terminobusqueda'

Última edición por Daitron; 08/03/2009 a las 08:37
  #4 (permalink)  
Antiguo 07/03/2009, 20:45
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años, 5 meses
Puntos: 9
Sonrisa Respuesta: como extraer datos de una bd con un formulario de busqueda

gracias por contestar
ya lo modifique a mi bd pero me manda un error y ya le busque y no se cual es
este es el error que me marca a la hora que hago alguna busqueda,
ya tengo uno registrado es carlos hernandez montes
me puede ayudar?

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/chicharrin/domains/chicharrines.net/public_html/new_image/busqueda/archivo_destino.php on line 27

y en la linea 27 empieza esto

Código PHP:
if ($totalum0) { 
    while (
$rowalum mysql_fetch_assoc($resEmp)) { 
        echo 
"Nombre: <strong>".$rowalum['nombre']."</strong><br></br>"
        echo 
"Apellidos: ".$rowalum['apellidos']."<br></br>"
        echo 
"Usuario: ".$rowalum['username']."<br></br>"
        echo 
"Telefono: ".$rowalum['telefono']."<br></br>"
     
    } 

  #5 (permalink)  
Antiguo 07/03/2009, 22:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: como extraer datos de una bd con un formulario de busqueda

Eso quiere decir que la consulta tiene un error, agregale un or die(mysql_error()) a el mysql_query().
  #6 (permalink)  
Antiguo 08/03/2009, 08:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: como extraer datos de una bd con un formulario de busqueda

Ya lo arregle era lo siguiente en la linea del while tenes que poner lo siguiente

Código php:
Ver original
  1. while ($rowalum = mysql_fetch_assoc($result)) {

Saludos
  #7 (permalink)  
Antiguo 08/03/2009, 20:13
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años, 5 meses
Puntos: 9
Respuesta: como extraer datos de una bd con un formulario de busqueda

muchas gracias... que fallo tan grande
gracias...

tengo otro problemilla pero este ya es mas sencillo (creo yo)
lo que pasa es que a la hora de hacer la busqueda de algun alumno que si existe en la bd
me desglosa la informacion pero el problema es que si no existe o no coloco nada en el formulario me dirige a la misma pagina pero sin resultados no me marca error de que no he llenado nada o que no existe ese alumno en la bd
como le puedo hacer este es el codigo de nuevo gracias...

Código PHP:
<?php

//TOMAMOS LA VARIABLE NOMBRE DEL FORMULARIO
$nombreaddslashes($_POST['nombre']);

//conectamos a la base de datos y seleccionamos la database
$conn mysql_connect ("localhost""--------""-------");
mysql_select_db("-----------",$conn);
 
// definimos la consulta
$consulta "SELECT * FROM usuarios WHERE nombre='$nombre';";
 
//realizamos las consulta
$result mysql_query($consulta) or die (mysql_error());
 
//si no se llevo a cabo escribir lo siguiente y salir de php
if (!$result){
   echo 
"No se pudo llevar a cabo la busqueda";
   exit;
}
 
//contamos los resultados
$totEmp mysql_num_rows($result);
 
// Y ACA AÑADIMOS TU CODIGO
if ($totEmp0) { 
    while (
$rowEmp mysql_fetch_assoc($result)) { 
        echo 
"Nombre: <strong>".$rowEmp['nombre']."</strong><br></br>"
        echo 
"Apellidos: ".$rowEmp['apellidos']."<br></br>"
        echo 
"Usuario: ".$rowEmp['username']."<br></br>"
        echo 
"Telefono: ".$rowEmp['telefono']."<br></br>"
     
    } 


?>
  #8 (permalink)  
Antiguo 08/03/2009, 20:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: como extraer datos de una bd con un formulario de busqueda

ando medio apurado de tiempo te pongo un metodo de comprobacion rapido para que te detecte si no has llenado nada

al comienzo de todo el codigo haces lo siguiente

creas un if de la siguiente manera vamos a suponer que los campos de tu formularios tienen por name lo siguiente 'nombre' 'apellido' 'username' 'telefono' bien, empecemos

Código php:
Ver original
  1. // esto revisa las variables recibidas del formulario si alguna de ellas no existe NO hara lo siguiente y saltara al else
  2. if (!$_POST['nombre'] || !$_POST['apellido'] || !$_POST['username'] || !$_POST['telefono'])
  3. {
  4.    //Todo el codigo PHP de la busqueda y devolucion de datos
  5. }
  6. else
  7. {
  8.   echo "No lleno alguno de los campos del formulario de busqueda por favor vuelva a intentarlo<br />";
  9.  echo "<a href=\"LINK AL FORMULARIO\">Ir al formulario</a>";
  10. }

Bueno, ya que estoy te digo lo del problema si no hay ningun alumno, tambien podemos hacerlo con un if, como sabes tenes una funcion que te cuenta los resultados obtenidos de la base de datos que es mysql_num_rows y te lo esta guardando en la variable $totEMp, luego tyienes un if que dice si totemp es mayor a cero entonces solo hay que agregar un else que nos diga si es igual a cero :P

Código php:
Ver original
  1. //contamos los resultados
  2. $totEmp = mysql_num_rows($result);
  3.  
  4. // Y ACA AÑADIMOS TU CODIGO
  5. if ($totEmp> 0) {  
  6.     while ($rowEmp = mysql_fetch_assoc($result)) {  
  7.         echo "Nombre: <strong>".$rowEmp['nombre']."</strong><br></br>";  
  8.         echo "Apellidos: ".$rowEmp['apellidos']."<br></br>";  
  9.         echo "Usuario: ".$rowEmp['username']."<br></br>";  
  10.         echo "Telefono: ".$rowEmp['telefono']."<br></br>";  
  11.      
  12.     }  
  13. }  
  14. else
  15. {
  16.    echo "No hay ningun alumno, con las caracteristicas que usted ingreso. <br /><br />";
  17.    echo "<a href=\"LINK AL FORMULARIO\">Ir al formulario</a>";
  18. }

espero que te sirva

Saludos.
  #9 (permalink)  
Antiguo 08/03/2009, 21:12
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: como extraer datos de una bd con un formulario de busqueda

utiliza funciones tales como isset,empty,etc

te pongo un ejemplo
Código PHP:
if(isset($_POST['var']))
{
if(!empty(
$_POST['var']))
{
//filtrado de variable
//realizas tu conexion y consulta, luego para saber si encontró registros(mayor que cero), entonces utilizamos la función mysql_num_rows()
//ejm
$sql='select * from t where c like '$variable_filtrada);
$query=mysql_query($sql,$tu_conexion);
if(
mysql_num_rows($query)>0)
{
//mostrar los registros con mysql_fetch_assoc u otra funcion para ello
}
else
{
//caso de no haber registros coincidentes (0) mostrar mensjae de error
}
}
else
{
//mostrar mensjae de que campo esta vacio
}
}
else
{
//mostrar mensaje de que no existe variable

__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:36.