Foros del Web » Programando para Internet » PHP »

PHP OO hacer una consulta por cedula o id

Estas en el tema de hacer una consulta por cedula o id en el foro de PHP en Foros del Web. Estoy intentando hacer una consulta en php. se trata de halar la informacion de mi base de datos por el id. tengo dos paginas. una ...
  #1 (permalink)  
Antiguo 19/06/2012, 11:34
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
hacer una consulta por cedula o id

Estoy intentando hacer una consulta en php. se trata de halar la informacion de mi base de datos por el id. tengo dos paginas. una donde pido el id y la otra para mostrar los resultados. esto lo estoy haciendo en dreamweaver si me pueden ayudar xfa... urgente..
aqui es donde se introduce el id
</form>

<form name="form1" method="get" action="">
<input name="cedula" type="text" id="cedula">
<input name="consultar" type="submit" id="consultar" value="Revisar">
</form>

Aqui muestro los resultados. pero no lo hace. necesito que me valide si el id esta en mi base de datos que me muestre los campos y si no esta que me diga no encontrado...
<?php require_once('../Connections/moodle.php'… ?>
<?php
$maxRows_juego = 10;
$pageNum_juego = 0;
if (isset($_GET['pageNum_juego'])) {
$pageNum_juego = $_GET['pageNum_juego'];
}
$startRow_juego = $pageNum_juego * $maxRows_juego;

$colname_juego = "1";
if (isset($_GET['id'])) {
$colname_juego = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_moodle, $moodle);
$query_juego = sprintf("SELECT id, username, phone1 FROM mdl_user WHERE id LIKE '%%%s%%' ORDER BY username ASC", $colname_juego);
$query_limit_juego = sprintf("%s LIMIT %d, %d", $query_juego, $startRow_juego, $maxRows_juego);
$juego = mysql_query($query_limit_juego, $moodle) or die(mysql_error());
$row_juego = mysql_fetch_assoc($juego);

if (isset($_GET['totalRows_juego'])) {
$totalRows_juego = $_GET['totalRows_juego'];
} else {
$all_juego = mysql_query($query_juego);
$totalRows_juego = mysql_num_rows($all_juego);
}
$totalPages_juego = ceil($totalRows_juego/$maxRows_juego)-1;
?>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>id</td>
<td>username</td>
<td>phone1</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_juego['id']; ?></td>
<td><?php echo $row_juego['username']; ?></td>
<td><?php echo $row_juego['phone1']; ?></td>
</tr>
<?php } while ($row_juego = mysql_fetch_assoc($juego)); ?>
</table>

<?php
mysql_free_result($juego);
?>
nose que es lo que me falta para lograr esto. por favor ayuda...
  #2 (permalink)  
Antiguo 19/06/2012, 12:46
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: hacer una consulta por cedula o id

Creo que tiene varios errores en su codigo:

1. Usted argumenta que TIENE 2 PAGINAS por lo que deduzco que en pagina1.php tiene el formulario y en pagina2.php tiene el proceso para realizar la consulta y la impresion de los resultados. Si eso es asi, el primer error seria que el ACTION del formulario esta vacio.

Cita:
ERROR
<form name="form1" method="get" action="">
SOLUCION
<form name="form1" method="get" action="pagina2.php">
2. Usted en pagina1.php tiene esto <input name="cedula" type="text" id="cedula"> pero en pagina2.php trata de recibir un parametro GET llamado $_GET['id'] teniendo en cuenta que el verdadero nombre del campo de texto es CEDULA

Hasta el momento son todos los errores que encontre (no busque mas).
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 19/06/2012, 13:33
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

gracias por tu tiempito. sigo sin poder hacer la consulta. conviene la primera parte.
<form name="form1" method="get" action="resultado.php">
<input name="cedula" type="text" cedula="id">
<input name="consultar" type="submit" id="consultar" value="Revisar">
</form>

pero la otra parte no entiendo como resolver, me puedes ayudar un poquito mas.
<?php require_once('../Connections/moodle.php'); ?>
<?php
$maxRows_juego = 10;
$pageNum_juego = 0;
if (isset($_GET['pageNum_juego'])) {
$pageNum_juego = $_GET['pageNum_juego'];
}
$startRow_juego = $pageNum_juego * $maxRows_juego;

$colname_juego = "1";
if (isset($_GET['id'])) {
$colname_juego = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_moodle, $moodle);
$query_juego = sprintf("SELECT id, username, phone1 FROM mdl_user WHERE id LIKE '%%%s%%' ORDER BY username ASC", $colname_juego);
$query_limit_juego = sprintf("%s LIMIT %d, %d", $query_juego, $startRow_juego, $maxRows_juego);
$juego = mysql_query($query_limit_juego, $moodle) or die(mysql_error());
$row_juego = mysql_fetch_assoc($juego);

if (isset($_GET['totalRows_juego'])) {
$totalRows_juego = $_GET['totalRows_juego'];
} else {
$all_juego = mysql_query($query_juego);
$totalRows_juego = mysql_num_rows($all_juego);
}
$totalPages_juego = ceil($totalRows_juego/$maxRows_juego)-1;
?>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td>id</td>
<td>username</td>
<td>phone1</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_juego['id']; ?></td>
<td><?php echo $row_juego['username']; ?></td>
<td><?php echo $row_juego['phone1']; ?></td>
</tr>
<?php } while ($row_juego = mysql_fetch_assoc($juego)); ?>
</table>

<?php
mysql_free_result($juego);
?>


o darme un ejemplo.. solo quiero introducir un id y si ese id existe en la base de datos que me muestre los datos y sino que diga no existe
  #4 (permalink)  
Antiguo 19/06/2012, 13:41
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: hacer una consulta por cedula o id

CAMBIE ESTO
Código PHP:
Ver original
  1. if (isset($_GET['id'])) {
  2. $colname_juego = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
  3. }

POR ESTO:

Código PHP:
Ver original
  1. if (isset($_GET['cedula'])) {
  2. $colname_juego = (get_magic_quotes_gpc()) ? $_GET['cedula'] : addslashes($_GET['cedula']);
  3. }
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 19/06/2012, 18:49
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

ya lo hice pero me muestra los datos pero con cualquier numero. es decir solo tengo un dato guardado en mi tabla user, q es id 1.. le introduzco 1,2,3 o cuallquier numero o letra y me lo muestra.. y yo solo quiero que me muestre el que existe. si introduzco 1 que me muestre el id 1. si introduzco 2, como no tengo id2 que diga no existe... es lo unico q quiero
  #6 (permalink)  
Antiguo 20/06/2012, 07:29
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: hacer una consulta por cedula o id

Es bastante raro lo que nos dices pero si investiga acerca de la sentencia LIKE se dara cuenta porque puede estar sucediendo eso...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 20/06/2012, 08:47
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

hola amigo , modifique todo. porque no di con el error, pero ahora tengo otro...
mira lo que he hecho:
<?php require_once('../Connections/moodle.php');
$cedula = getParam($_GET["cedula"], "");
$total = 0;
if ($cedula!=""){
$slike = sqlValue($criterio."%", "bigint");{
$query = "SELECT id, username, phone1 FROM mdl_user WHERE id LIKE '$colname_juego' ORDER BY username ASC LIMIT $startRow_juego, $maxRows_juego";
$queryconsult = mysql_query($query) or die ("Error: ". mysql_error() . "
" . $query);
$total = mysql_num_rows($queryconsult);
}
?>
<html
<head>
<title>Consultar datos en MySQL</title>
</head>
<body>
<h3>Consultas por Cedula</h3>
<form name="form1" method="get" action="resultado.php">
<p align="center">Cedula :<input name="cedula" type="text" value="" id="cedula">
<input name="consultar" type="submit" id="consultar" value="Revisar">
</form>
<?php if ($total> 0) { ?>
<table>
<thead>
<tr><th>ID </th><th>Username </th><th>Phone1 </th></tr>
</thead>
<tbody>
<?php
while ( $row = mysql_fetch_assoc($queryconsult)) { ?>
<tr>
<td><?php echo $row['id']; ?></td>
<?php echo $row['username']; ?></td>
<?php echo $row['phone1']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>

<</tr>
<?php } ?>
</table>
<?php } ?>
<p>&nbsp;</p>
</body>
</html>

. ahota utilizo solo una pagina para hacer la consulta. pero me sale un error:
Fatal error: Call to undefined function getParam() in C:\wamp\www\proyecto_SED_LUZ\Resultado.php on line 2
  #8 (permalink)  
Antiguo 20/06/2012, 09:12
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: hacer una consulta por cedula o id

Te recomiendo enormemente que no utilices el asistente para crear codigo PHP de DW ya que es malisimo y crea un monton de codigo que no sirve para nada. Lo que quieres hacer es tan sencillo como esto:

Código PHP:
Ver original
  1. <?php
  2. if(isset($_GET["cedula"]) && !empty($_GET["cedula"])){
  3.     $cedula = $_GET["cedula"];
  4.    
  5.     // conectando a la base de datos
  6.     require_once('../Connections/moodle.php');
  7.    
  8.     //preparamos la consulta
  9.     $query = "SELECT id, username, phone1 FROM mdl_user WHERE id LIKE '%$cedula%' ORDER BY username ASC";
  10.     // ejecutamos la consulta
  11.     $ejecutar = mysql_query($query);
  12.     // total de registros devueltos
  13.     $total_reg = mysql_num_rows($ejecutar);
  14.    
  15.     if($total_reg > 0){
  16.         while($registros = mysql_fetch_array($ejecutar)){
  17.             echo $registros['id']."-";
  18.             echo $registros['username']."-";
  19.             echo $registros['phone1']."<br />";
  20.         }
  21.     }else{
  22.         echo "No se entcontraron resultados...!";
  23.     }  
  24. }
  25. ?>
  26.  
  27. <form name="form1" method="get" action="">
  28. <p align="center">Cedula :<input name="cedula" type="text" value="" id="cedula">
  29. <input name="consultar" type="submit" id="consultar" value="Revisar">
  30. </form>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #9 (permalink)  
Antiguo 20/06/2012, 09:29
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

graciasssss amigo al fin tengo la consultaaaa... mil gracias..
  #10 (permalink)  
Antiguo 20/06/2012, 19:49
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

, despues de difrutar de la pequeña consulta, me paso algo que no entiendo... ahora me da un error que dice:

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\wamp\www\prototipo\result.php on line 14..
) Notice: Undefined variable: ejecutar in C:\wamp\www\prototipo\result.php on line 14..


la linea 14 es:
$total_reg = mysql_num_rows($ejecutar);
.. podrias ayudarme de nuevo..
  #11 (permalink)  
Antiguo 21/06/2012, 02:53
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: hacer una consulta por cedula o id

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\wamp\www\prototipo\result.php on line 14..
) Notice: Undefined variable: ejecutar in C:\wamp\www\prototipo\result.php on line 14..

Claramente el error dice que la función mysql_num_rows() esperaba 1 parametro y al parecer no tiene nada, o sea null.

Noticia: la variable ejecutar es indefinida, nunca se definió, fijate si no le cambiaste el nombre a $ejecutar y se llama de otra manera ahora o si la borraste.
  #12 (permalink)  
Antiguo 21/06/2012, 07:51
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

y como puedo resolver ese error, xq estaba trabajando bien y ahora me sale ese error..
  #13 (permalink)  
Antiguo 27/06/2012, 12:43
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

hola , disculape pregunte de nuevo... tengo mi paginas que hacen la consultaa por el numero de cedula en mi base de datos, el problema es que si meto otros numeros como 1 o 2 tambien me muestra resultado y no deberia ser asi, xq esos son el primer numero de lo q estan guardados en mi base de datos... este es el codigo:
<form name="form1" method="post" action="er_ced_datos.php">
<p align="left"><strong>Cedula </strong>:
<input name="cedula" type="text" value="" id="cedula">
<input name="consultar" type="submit" id="consultar" value="Revisar">
</form>.
................
</head>
<?PHP
if(isset($_POST["cedula"]) && !empty($_POST["cedula"])){
$cedula = $_POST["cedula"];
$hostname_moodle = "localhost";
$database_moodle = "moodle";
$username_moodle = "root";
$password_moodle = "";
$moodle = mysql_pconnect($hostname_moodle, $username_moodle, $password_moodle) or trigger_error(mysql_error(),E_USER_ERROR);

mysql_select_db("$hostname_moodle",$moodle);
$consultar = "SELECT idnumber, fullname, metacourse FROM mdl_course WHERE idnumber LIKE '%$cedula%' ORDER BY fullname ASC";
$query = mysql_query($consultar) or die(mysql_error());
$total_reg = mysql_num_rows($query );
if($total_reg >0){
?>

<table width="358" height="59" border="1">
<tr>
<th scope="col">Id&nbsp;</th>
<th scope="col">Nombre Completo&nbsp;</th>
<th scope="col">Curso&nbsp;</th>
</tr>
<?php
while($result=mysql_fetch_array($query )){
?>
<tr>
<td><?php echo $result['idnumber'] ?>&nbsp;</td>
<td><?php echo $result['fullname'] ?>&nbsp;</td>
<td><?php echo $result['metacourse'] ?>&nbsp;</td>
</tr>
<?php
}
}
else { echo "No se encontraron Registros";}
}
?>
</table>
</body>
</html>


tengo solo 2 registros guardados , 20465169 y 14789562.
si introduzco 2 me muetsra el resultado de 20465169, y si introduzco 1 me muestra el 14789562. y no puede ser porque me tiene q validar el numero completo. me podrian ayudar como hacer esa condicion... xfa..
  #14 (permalink)  
Antiguo 27/06/2012, 13:02
Avatar de MRotten  
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 5
Respuesta: hacer una consulta por cedula o id

Y si cambias
Código SQL:
Ver original
  1. WHERE idnumber LIKE '%$cedula%'
por
Código SQL:
Ver original
  1. WHERE idnumber = $cedula
  #15 (permalink)  
Antiguo 27/06/2012, 13:05
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

gracias... ahora si esta listo
  #16 (permalink)  
Antiguo 27/06/2012, 13:19
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: hacer una consulta por cedula o id

No respondi porque uno de los primeros mensajes que le envie fue este:

Cita:
Es bastante raro lo que nos dices pero si investiga acerca de la sentencia LIKE se dara cuenta porque puede estar sucediendo eso...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #17 (permalink)  
Antiguo 27/06/2012, 13:22
 
Fecha de Ingreso: junio-2012
Ubicación: maracaibo
Mensajes: 36
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: hacer una consulta por cedula o id

Si amigo, y gracias, usted tambien me ha ayudado mucho....
  #18 (permalink)  
Antiguo 27/06/2012, 13:22
Avatar de anewryzm  
Fecha de Ingreso: septiembre-2011
Mensajes: 47
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: hacer una consulta por cedula o id

Es tan dificil usar las etiquetas de PHP?

Etiquetas: cedula, mysql, sql
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 22:36.