Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consultar y mostrar un dato específico

Estas en el tema de Consultar y mostrar un dato específico en el foro de PHP en Foros del Web. Buenas tardes. Saludos a todos. He estado leyendo varios de los temas a lo largo del tiempo y he encontrado solución a varios problemas , ...
  #1 (permalink)  
Antiguo 04/01/2015, 12:48
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Pregunta Consultar y mostrar un dato específico

Buenas tardes. Saludos a todos.
He estado leyendo varios de los temas a lo largo del tiempo y he encontrado solución a varios problemas , pero ahora necesito me ayuden con este quizá un poco básico pero que aún así no logro solucionar.

De una lista de datos de empleados de una empresa necesito consultar haciendo uso de uan cédula de identidad específica, en el caso de que esta exista me saldrán opciones Editar o Eliminar. El código que uso es el siguiente:

<html>
<head>
<title>Consulta</title>
</head>
<body>
<p>
<?php
$conexion = mysql_connect("localhost", "root", "") or die("Problemas en la conexion");
mysql_select_db("empresa", $conexion) or die("Problemas en la selección de la base de datos");
$registros = mysql_query("select cedula,apellidos,nombre,puesto, sueldo from personal where cedula='$_REQUEST[cedula]'", $conexion) or die("Problemas en el select:" .mysql_error());
if ($reg = mysql_fetch_array($registros)) {
echo "Cedula:" . $reg['cedula'] . "<br>";
echo "Apellidos:" . $reg['apellidos'] . "<br>";
echo "Nombres:" . $reg['nombre'] . "<br>";
echo "Puesto" . $reg['puesto'] . "<br>";
echo "Sueldo" . $reg['sueldo'] . "<br>";
?>
<br> <a href="formeditar.php?cedulaA=<?=$_REQUEST['cedula']?>"> Editar</a>
<br> <a href="eliminar.php?cedula=<?=$_REQUEST['cedula']?>" onClick="if(!confirm('Realmente desea eliminar el registro?')) return false"> Eliminar</a>
<?php
} else {
echo "Cedula No registrada .";
}
mysql_close($conexion);
?>
</body>
</html>

Al ingresar una cédula aunque si tengo registrada me sale el msj Cedula No registrada

¿En qué creen que estoy fallando? Gracias.
  #2 (permalink)  
Antiguo 04/01/2015, 12:53
 
Fecha de Ingreso: enero-2015
Ubicación: Bogota
Mensajes: 10
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

Adonde esta el formulario de envió?
  #3 (permalink)  
Antiguo 04/01/2015, 13:20
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

<html>
<head>
<title>Buscar </title>
</head>
<body>
<form action="buscar.php" method="post">
Ingrese la cedula consultar:
<input type="text" name="ced" id="ced">
<br>
<input type="submit" value="Buscar">
<input type="reset" name="reset" id="reset" value="Borrar">
</form>
</body>
</html>
  #4 (permalink)  
Antiguo 04/01/2015, 13:46
 
Fecha de Ingreso: enero-2015
Ubicación: Bogota
Mensajes: 10
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

Yo lo haría así!

Código HTML:
<html> 
<body> 
<form method="POST" action="buscar.php"> 
<strong>Cedula:</strong> <input type="text" name="ced" size="20"><br><br> 
<input type="submit" value="Buscar" name="buscar"> 
</form> 
</body> 
</html> 
en el archivo buscar.php
Código PHP:
<html> 
<body> 
  
<?php 
if (!isset($buscar)){ 
      echo 
"Debe especificar una cadena a bucar"
      echo 
"</html></body> \n"
      exit; 

$link mysql_connect("localhost""nobody"); 
mysql_select_db("mydb"$link); 
$result mysql_query("SELECT * FROM personal WHERE cedula '%$buscar%' ORDER BY nombre"$link); 
if (
$row mysql_fetch_array($result)){ 
      echo 
"<table border = '1'> \n"
//Mostramos los nombres de las tablas 
echo "<tr> \n"
while (
$field mysql_fetch_field($result)){ 
            echo 
"<td>$field->name</td> \n"

      echo 
"</tr> \n"
do { 
echo 
"Cedula:" $reg['cedula'] . "<br>"
echo 
"Apellidos:" $reg['apellidos'] . "<br>";
echo 
"Nombres:" $reg['nombre'] . "<br>";
echo 
"Puesto" $reg['puesto'] . "<br>";
echo 
"Sueldo" $reg['sueldo'] . "<br>"; </a></tdn"; 
            echo "
</trn"; 
      } while ($row = mysql_fetch_array($result)); 
            echo "
</tablen"; 
} else { 
echo "
¡ No se ha encontrado ningún registro !"; 

?> 
  
</body> 
</html>
  #5 (permalink)  
Antiguo 04/01/2015, 15:59
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

gracias amigo, probé los códigos y sin embargo no me muestra el resultado de la consulta sino que me aparece el msj: No se ha encontrado ningún registro.

Los datos que quiero consultar los inserté directamente en la base de datos en Xampp.
  #6 (permalink)  
Antiguo 04/01/2015, 16:53
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: Consultar y mostrar un dato específico

Deberías recoger el Post que estas enviando...
Código PHP:
if(isset($_POST['ced'])){
$buscar$_POST['ced'];

  #7 (permalink)  
Antiguo 04/01/2015, 17:03
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

Cita:
Iniciado por Djoaq Ver Mensaje
Deberías recoger el Post que estas enviando...
Código PHP:
if(isset($_POST['ced'])){
$buscar$_POST['ced'];

Ese código lo incluyo donde o lo sustituyo por cual? Disculpa.
Coloco nuevamente el código original
Código PHP:
<html>
<head>
<title>Consulta</title>
</head>
<body>
<p>
<?php
$conexion 
mysql_connect("localhost""root""") or die("Problemas en la conexion");
mysql_select_db("empresa"$conexion) or die("Problemas en la selección de la base de datos");
$registros mysql_query("select cedula,apellidos,nombre,puesto, sueldo from personal where cedula='$_REQUEST[cedula]'"$conexion) or die("Problemas en el select:" .mysql_error());
if (
$reg mysql_fetch_array($registros)) {
echo 
"Cedula:" $reg['cedula'] . "<br>";
echo 
"Apellidos:" $reg['apellidos'] . "<br>";
echo 
"Nombres:" $reg['nombre'] . "<br>";
echo 
"Puesto" $reg['puesto'] . "<br>";
echo 
"Sueldo" $reg['sueldo'] . "<br>";
?>
<br> <a href="formeditar.php?cedulaA=<?=$_REQUEST['cedula']?>"> Editar</a>
<br> <a href="eliminar.php?cedula=<?=$_REQUEST['cedula']?>" onClick="if(!confirm('Realmente desea eliminar el registro?')) return false"> Eliminar</a>
<?php
} else {
echo 
"Cedula No registrada .";
}
mysql_close($conexion);
?>
</body>
</html>
Tendrá algo que ver el hecho de que ingresé los datos directamente en Xampp?
Saludos. Gracias
  #8 (permalink)  
Antiguo 04/01/2015, 17:25
Avatar de acopantepuy  
Fecha de Ingreso: junio-2010
Ubicación: Caracas
Mensajes: 21
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

Utiliza $_POST en tu código PHP:

Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <title>Consulta</title>
  4.     </head>
  5.     <body>
  6.         <p>
  7.             <?php
  8.                 $conexion = mysql_connect("localhost", "root", "") or die("Problemas en la conexion");
  9.                 mysql_select_db("empresa", $conexion) or die("Problemas en la selección de la base de datos");
  10.                 $registros = mysql_query("select cedula,apellidos,nombre,puesto, sueldo from personal where cedula='$_POST[cedula]'", $conexion) or die("Problemas en el select:" .mysql_error());
  11.             if ($reg = mysql_fetch_array($registros)) {
  12.                 echo "Cedula:" . $reg['cedula'] . "<br>";
  13.                 echo "Apellidos:" . $reg['apellidos'] . "<br>";
  14.                 echo "Nombres:" . $reg['nombre'] . "<br>";
  15.                 echo "Puesto" . $reg['puesto'] . "<br>";
  16.                 echo "Sueldo" . $reg['sueldo'] . "<br>";
  17.             ?>
  18.                 <br> <a href="formeditar.php?cedulaA=<?=$_POST['cedula']?>"> Editar</a>
  19.                 <br> <a href="eliminar.php?cedula=<?=$_POST['cedula']?>" onClick="if(!confirm('Realmente desea eliminar el registro?')) return false"> Eliminar</a>
  20.             <?php
  21.             } else {
  22.                 echo "Cedula No registrada .";
  23.             }
  24.                 mysql_close($conexion);
  25.             ?>
  26.         </p>
  27.     </body>
  28. </html>

Cuida mucho la forma en que escribes el código es fundamental para entender lo que haces y hacer una buena administración de tus códigos en un futuro
  #9 (permalink)  
Antiguo 04/01/2015, 17:38
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

Saludos acopantepuy el código va muy bien, aún así no me muestra los datos.

Muchas gracias por el consejo que me diste al final, lo tendré en cuenta
  #10 (permalink)  
Antiguo 05/01/2015, 00:02
 
Fecha de Ingreso: julio-2013
Ubicación: Durango, Dgo
Mensajes: 108
Antigüedad: 10 años, 9 meses
Puntos: 8
Respuesta: Consultar y mostrar un dato específico

no se si es esto lo que quieres pero en esta parte de código le agregaría lo siguiente

<html>
<head>
<title>Consulta</title>
</head>
<body>
<p>
<?php
$conexion = mysql_connect("localhost", "root", "") or die("Problemas en la conexion");

mysql_select_db("empresa", $conexion) or die("Problemas en la selección de la base de datos");
$registros = mysql_query("select cedula,apellidos,nombre,puesto, sueldo from personal where cedula='$_REQUEST[cedula]'", $conexion) or die("Problemas en el select:" .mysql_error());


$reg = mysql_fetch_array($registros
if (reg['cedula']<>"") {

echo "Cedula:" . $reg['cedula'] . "<br>";
echo "Apellidos:" . $reg['apellidos'] . "<br>";
echo "Nombres:" . $reg['nombre'] . "<br>";
echo "Puesto" . $reg['puesto'] . "<br>";
echo "Sueldo" . $reg['sueldo'] . "<br>";
?>
<br> <a href="formeditar.php?cedulaA=<?=$_REQUEST['cedula']?>"> Editar</a>
<br> <a href="eliminar.php?cedula=<?=$_REQUEST['cedula']?>" onClick="if(!confirm('Realmente desea eliminar el registro?')) return false"> Eliminar</a>
<?php
} else {
echo "Cedula No registrada .";
}
mysql_close($conexion);
?>
</body>
</html>

así si se realiza la consulta y no existe te dice que no se encuentra, si si encuentra te muestra los datos

espero te sirva y sea lo que querias
  #11 (permalink)  
Antiguo 05/01/2015, 00:03
 
Fecha de Ingreso: julio-2013
Ubicación: Durango, Dgo
Mensajes: 108
Antigüedad: 10 años, 9 meses
Puntos: 8
Respuesta: Consultar y mostrar un dato específico

Código PHP:
<html>
<head>
<title>Consulta</title>
</head>
<body>
<p>
<?php
$conexion 
mysql_connect("localhost""root""") or die("Problemas en la conexion");

mysql_select_db("empresa"$conexion) or die("Problemas en la selección de la base de datos");
$registros mysql_query("select cedula,apellidos,nombre,puesto, sueldo from personal where cedula='$_REQUEST[cedula]'"$conexion) or die("Problemas en el select:" .mysql_error());


$reg mysql_fetch_array($registros
if (reg['cedula']<>"") {
echo 
"Cedula:" $reg['cedula'] . "<br>"
echo 
"Apellidos:" $reg['apellidos'] . "<br>";
echo 
"Nombres:" $reg['nombre'] . "<br>";
echo 
"Puesto" $reg['puesto'] . "<br>";
echo 
"Sueldo" $reg['sueldo'] . "<br>";
?>
<br> <a href="formeditar.php?cedulaA=<?=$_REQUEST['cedula']?>"> Editar</a>
<br> <a href="eliminar.php?cedula=<?=$_REQUEST['cedula']?>" onClick="if(!confirm('Realmente desea eliminar el registro?')) return false"> Eliminar</a>
<?php
} else {
echo 
"Cedula No registrada .";
}
mysql_close($conexion);
?>
</body>
</html>
así si se realiza la consulta y no existe te dice que no se encuentra, si si encuentra te muestra los datos

espero te sirva y sea lo que querias

me habia faltado el signo $ en el reg del if

Última edición por matrixre9; 05/01/2015 a las 00:09 Razón: error de escritura
  #12 (permalink)  
Antiguo 05/01/2015, 05:59
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Consultar y mostrar un dato específico

Pero que hacen.. para eso existe el mysql_num_row() que devuelve un resultado numerico con el numero de filas existentes según la consulta SQL y con eso sabes si existen o no registros.. no hace falta poner que esta vacío o comprobar


Código PHP:
Ver original
  1. $qry = mysql_query("SELECT * FROM clientes");
  2. $num = mysql_num_rows($qry);
  3.  
  4. if($num > 0){
  5. echo "Hay";
  6. }else{
  7. echo "no hay";
  8. }
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #13 (permalink)  
Antiguo 05/01/2015, 06:29
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

Gracias a todos por su tiempo. Lo he realizado de todas las formas que me han dicho y en teoría el código funciona bien, solo que sigue sin encontrar ningún registro y tengo datos en la base.
  #14 (permalink)  
Antiguo 05/01/2015, 06:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consultar y mostrar un dato específico

Cita:
Iniciado por mordvinia Ver Mensaje
Gracias a todos por su tiempo. Lo he realizado de todas las formas que me han dicho y en teoría el código funciona bien, solo que sigue sin encontrar ningún registro y tengo datos en la base.
Si la consulta se ejecuta sin errores, lo que no tienes son datos que cumplan las condiciones...
¿Podrías postear un ejemplo de los datos reales que contiene tu tabla, en especial lo del campo "cedula", así como postear una captura de la query que se genera?
Para esto último te recomiendo que no pongas la query directamente en la funcion, sino que la cargues primero en una variable:
Código PHP:
Ver original
  1. $sql = "select cedula,apellidos,nombre,puesto, sueldo from personal where cedula='$_REQUEST[cedula]'";
  2.  
  3. // Mostrando la consulta
  4. echo $sql;
  5.  
  6. $registros = mysql_query($sql, $conexion) or die("Problemas en el select:" .mysql_error());

No sólo es más facil verificar si hay algo mal, sino que además hace un código más limpio.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 05/01/2015, 07:15
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

Resultado SQL

Servidor: localhost
Base de datos: empresa
Tiempo de generación: 05-01-2015 a las 13:19:36
Generado por: phpMyAdmin 3.2.4 / MySQL 5.1.41
consulta SQL: SELECT * FROM `personal` LIMIT 0, 30 ;
Filas: 2

cedula apellidos nombre puesto sueldo
18765467 Romero Jose Administrador 7659
13456754 Mendoza Ana Secretaria 4986
  #16 (permalink)  
Antiguo 05/01/2015, 07:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consultar y mostrar un dato específico

¿Y el echo de la query que se crea en el script de PHP? ¿Para cuando?
¿Lo intentaste al menos...?

Ese es el que tiene la información crítica. A mi entender, si no te está devolviendo registros es porque el dato que ingresa por formulario no está, o no está entre los de la base.
No hay muchas más opciones.

Por cierto, el ID del input teext, es "cedula" o "ced"?
No es lo mismo...
Código PHP:
Ver original
  1. $ced = $_REQUEST[ced];
  2. echo "CEdula Recibida: ".$ced;
  3.  
  4. $sql = "select cedula,apellidos,nombre,puesto, sueldo from personal where cedula=$ced";
  5.  
  6. // Mostrando la consulta
  7. echo $sql;
  8.  
  9. $registros = mysql_query($sql, $conexion) or die("Problemas en el select:" .mysql_error());
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 05/01/2015 a las 07:44
  #17 (permalink)  
Antiguo 05/01/2015, 08:41
 
Fecha de Ingreso: enero-2015
Mensajes: 48
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Consultar y mostrar un dato específico

Ya está listo amigos, muchas gracias.

Etiquetas: Ninguno
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 18:27.