Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error en buscador con PHP y MySQL.

Estas en el tema de Error en buscador con PHP y MySQL. en el foro de PHP en Foros del Web. Hola y saludos a todos, soy nuevamente yo con otra duda y es la siguiente: Tengo un formulario de busqueda, y lo que deseo hacer ...
  #1 (permalink)  
Antiguo 21/03/2014, 11:33
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Error en buscador con PHP y MySQL.

Hola y saludos a todos, soy nuevamente yo con otra duda y es la siguiente:

Tengo un formulario de busqueda, y lo que deseo hacer es que al dar click en buscar, me busque el dato por medio del ID del usuario; parte del codigo de esta pagina es:

<form name="consulta1" method="post" action="mostrar_datos.php">
<legend ><span style="text-decoration:blink;">I</span>ngrese los datos a buscar:</legend>
Id. Inscripción:<input type="text" name="id" id="id" maxlength="100">* <br />
<input type="submit" value="Aceptar"><br />
<input type="button" name="Retornar" value="<--Volver" onClick="location.href='kinder.php'" />
</form>
</div>

y de la
require("con_bd_kinder.php");
$conexion=bdcon();
$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion LIKE '%$id%'";
pero donde me marca error es en el id despues del LIKE lanzandome este error
"Notice: Undefined variable: id"
¿como puedo corregir ese error?
  #2 (permalink)  
Antiguo 21/03/2014, 11:35
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Error en buscador con PHP y MySQL.

La variable la recibes por POST, no es $id, es $_POST['id'] desde que super globals esta en OFF

De todas maneras si lo único que buscas es recoger las filas que tengan esa ID no usaria LIKE, usaria simplemente el operador =

Un saludo
  #3 (permalink)  
Antiguo 21/03/2014, 12:17
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en buscador con PHP y MySQL.

Cita:
Iniciado por Heli0s Ver Mensaje
La variable la recibes por POST, no es $id, es $_POST['id'] desde que super globals esta en OFF

De todas maneras si lo único que buscas es recoger las filas que tengan esa ID no usaria LIKE, usaria simplemente el operador =

Un saludo
Helios, muchas gracias por tu respuesta, modifique la consulta y la deje asi:

$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion = '$_POST['id']'";

Pero me marca este error:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\inscripcion_kinder\mostrar_datos.php on line 59

¿Hice algo malo o escribi mal la consulta?
  #4 (permalink)  
Antiguo 21/03/2014, 18:45
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Error en buscador con PHP y MySQL.

esta hiper ultra mal

$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion = '$_POST['id']'";


si el id es numerico
$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion = $_POST['id']";

si es una cadena o string

$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion = '".$_POST['id']."'";



bye.
  #5 (permalink)  
Antiguo 21/03/2014, 21:24
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en buscador con PHP y MySQL.

Cita:
Iniciado por __SDP__ Ver Mensaje
esta hiper ultra mal

$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion = '$_POST['id']'";


si el id es numerico
$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion = $_POST['id']";

si es una cadena o string

$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion = '".$_POST['id']."'";



bye.
¿Que crees? me sigue marcando el mismo error, ¿como lo puedo corregir?
  #6 (permalink)  
Antiguo 21/03/2014, 21:31
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: Error en buscador con PHP y MySQL.

Postea el código completo de "mostrar_datos.php" y de "kinder.php".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 21/03/2014, 21:32
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: Error en buscador con PHP y MySQL.

Código PHP:
Ver original
  1. require("con_bd_kinder.php");
  2. $conexion=bdcon();
  3. if(isset($_POST['id'])){
  4. $id=$_POST['id'];
  5. $sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion LIKE '%$id%'";
  6. }else{
  7. echo "No has enviado ninguna variable llamada ID"
  8. }

Aunque el uso de LIKE no es necesario si es una variable numérica podrias reemplazarlo como ya te dijeron:

Código PHP:
Ver original
  1. $sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion =$id ";
__________________
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...
  #8 (permalink)  
Antiguo 21/03/2014, 21:37
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en buscador con PHP y MySQL.

form_consulta.php
<?php
session_start();
include "con_bd_kinder.php";
include "positiontop.php";
?>
<html>
<header>
<style type="text/css" >
/*Dando estilo al contenedor que es la división principal, esta cotiene a todos los demas div*/
#entrada{
width:400px;
height:150px;
background-color:#888;
}

legend{
color:#EEE;
background: #1797d2;
font-family: Arial, Helvetica, Sans-serif;
font-size: 0.9em;
font-weight: bold;
padding: 5px;
margin-bottom: 0;
width: 16em;
border: 1px solid #3E4A49;
}

label{
width: 12 em;
float:left;
text-align:left;
margin-right: 1 em;
display: block;
color:#EEE;
}

#new{
width: 20em;
float:left;
text-align:left;
margin-right: 0.5em;
display: block;
color:#EEE;
}

#mayus{ text-transform:uppercase;}

</style>
<title>Buscador</title>
</header>
<body>
<p>
<?php
if(isset($_SESSION['usuario'])){
echo "Hna: ".$_SESSION['usuario'];
}else{
echo "Acceso Restringido";
}
?>
</p>
<div id="entrada">
<form name="consulta1" method="post" action="mostrar_datos.php">
<legend ><span style="text-decoration:blink;">I</span>ngrese los datos a buscar:</legend>
Id. Inscripción:<input type="text" name="id" id="id" maxlength="100">* <br />
<input type="submit" value="Aceptar"><br />
<input type="button" name="Retornar" value="<--Volver" onClick="location.href='kinder.php'" />
</form>
</div>
</body>
</html>

mostrardatos.php
<?php
session_start();
include "positiontop.php";
?>
<html>
<title>Mostrar datos</title>
<body>
<style type="text/css" >
/*Dando estilo al contenedor que es la división principal, esta cotiene a todos los demas div*/
#entrada{
width:400px;
height:150px;
background-color:#888;
}

legend{
color:#EEE;
background: #1797d2;
font-family: Arial, Helvetica, Sans-serif;
font-size: 0.9em;
font-weight: bold;
padding: 5px;
margin-bottom: 0;
width: 16em;
border: 1px solid #3E4A49;
}

label{
width: 12 em;
float:left;
text-align:left;
margin-right: 1 em;
display: block;
color:#EEE;
}

#new{
width: 20em;
float:left;
text-align:left;
margin-right: 0.5em;
display: block;
color:#EEE;
}

#mayus{ text-transform:uppercase;}

</style>
<?php
if(isset($_SESSION['usuario'])){
echo "Hna: ".$_SESSION['usuario'];
}else{
echo "Acceso Restringido";
}

require("con_bd_kinder.php");
$conexion=bdcon();

$sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion = $_POST['id']";

$result=mysql_query($sqlconsulta, $conexion)or die("Error en la actualizacion SQL".mysql_error());
if(!$result){
echo "<html><script>alert(\"Ocurrio un error, vuelva a intentar.\"); window.location='aplicacion.php';</script></html>";
}else {
echo "<table border='1'> \n";
echo "<tr>
<td>Id</td>
<td>Apellido Paterno</td>
<td>Apellido Materno</td>
<td>Nombre</td>
<td>Fecha de Nacimiento</td>
<td>CURP</td>
<td>Medicamentos que le Afectan</td>
<td>Alimentos que le gustan</td>
<td>Paseos que le gustan</td>
<td>Juguetes que le gustan</td>
<td>Dispuesto a no Faltar al Kinder y a la Guarderia</td>
<td>Solo Asistir al Kinder</td>
<td>Cuanto tiempo se queda solo en casa</td>
<td>A qué horas toma sus alimentos</td>
<td>Nombre del Padre</td>
<td>Nombre de la Madre</td>
<td>Domicilio</td>
<td>Telefono</td>
<td>Ocupación</td>
<td>Escolaridad</td>
<td>Nombre y Firma</td>
<td>Fecha de Inscripción</td>
<td>Comformidad de los Padres y de la Institución</td>";
echo "</table>";
while ($row = mysql_fetch_row($result)){
?>
<tr>
<td class="style1"><div align="center"><?php echo $row[0]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[1]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[2]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[3]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[4]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[5]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[6]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[7]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[8]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[9]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[10]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[11]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[12]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[13]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[14]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[15]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[16]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[17]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[18]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[19]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[20]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[21]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[22]; ?></div></td>
<td class="style1"><div align="center"><?php echo $row[23]; ?></div></td>
</tr>
<div align="center"><span class="style1">
<?php
}
}
echo "</table>";
//}
?>

<input type="button" name="Retornar" value="<--Volver" onClick="location.href='kinder.php'" />
</body>
</html>
  #9 (permalink)  
Antiguo 21/03/2014, 21:42
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en buscador con PHP y MySQL.

Cita:
Iniciado por loncho_rojas Ver Mensaje
Código PHP:
Ver original
  1. require("con_bd_kinder.php");
  2. $conexion=bdcon();
  3. if(isset($_POST['id'])){
  4. $id=$_POST['id'];
  5. $sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion LIKE '%$id%'";
  6. }else{
  7. echo "No has enviado ninguna variable llamada ID"
  8. }

Aunque el uso de LIKE no es necesario si es una variable numérica podrias reemplazarlo como ya te dijeron:

Código PHP:
Ver original
  1. $sqlconsulta="SELECT * FROM ficha_inscripcion WHERE id_inscripcion =$id ";
loncho_rojas, tu le diste en el blanco, ya que con la respuesta que me diste me dio, te lo agradezco mucho, me sale como debiera; ahora dos micro dudas:

¿si quiero utilizar apellidos paterno y materno y nombre, solo poniendo esas 3 variables verdad?

y

me aparece la información de manera vertical osease asi:
Manson
Gus
1000 años
etc
etc
etc

pero con el nombre de las tablas de la siguiente manera:
Apellido Paterno Nombre Edad Etc Etc Etc
¿como le puedo hacer para los nombres de la tabla me los ponga verticalmente como la información?

Nuevamente gracias y saludos.
  #10 (permalink)  
Antiguo 21/03/2014, 21:54
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: Error en buscador con PHP y MySQL.

No entiendo bien, pero si vas a buscar como López (apellido paterno) o Gaitán (apellido materno) deberías usar LIKE pero tu SQL se modificaría.. te sugiero que leas un poco sobre OR y AND en SQL para que no te confundas.. pero sería algo como:

Código PHP:
Ver original
  1. SELECT * FROM ficha_inscripcion WHERE id_inscripcion LIKE '%$id%' OR ApellidoPaterno LIKE '%$id%' OR ApellidoMaterno LIKE '%$id%'

Pero recuerda que, en palabras sencillas el signo % puesto adelante y posterior a la variable le indica a SQL que va a buscar primero la palabra exacta que escibiste, y luego palabras que contengan dentro la misma palabra que buscaste.. por ejemplo:

palabras en base de datos: enguitarrados, guitarra, guita

palabra ingresada en el buscador: GUITA

con el %id% los resultados serían // guita, enguitarrados, guitarra
con el %id los resultados serían // guita, enguitarrados
con el id% los resultados serían // guita, guitarra
solo con id sin % el resultado seria // guita

con esos puedes hacerlo más especifico o traer resultados similares dependiendo si colocas o no % y de donde la coloques.. espero se entienda.
__________________
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...
  #11 (permalink)  
Antiguo 21/03/2014, 22:22
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en buscador con PHP y MySQL.

Mi idea es que busque por medio de 3 variables que son:

* Apellido Paterno,
* Apellido Materno y
* Nombre,

para que asi me pueda mostrar los resultados en vez de utilizar el id.
  #12 (permalink)  
Antiguo 21/03/2014, 22:31
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: Error en buscador con PHP y MySQL.

Ya te di la idea de como hacerlo... buscar por 3 variables a la vez puede ser un dolor de cabeza y traería resultados inexactos... cuantas más variables tenegas para buscar, se hara todo más específico, y con menores posibilidades de encontrar resultados... sin contar los errores ortográficos y caracteres especiales que ingresa el usuario...

no es lo mismo buscar un López, que habrá como 300

o buscar una López - Aguinaga que habra como 3

o un Raul López Aguinaga que tal vez haya 2 pero lo más probable es que haya 1 o ninguno..
e imagina si el usuario escribe Lopez en vez de López o Agüinaga en vez de Aguinaga, y así... deberías crear otro post con la consulta, ya que este te fue respondido...
__________________
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 21/03/2014, 22:34
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error en buscador con PHP y MySQL.

Ok, muchas gracias, lo hare y creare otro post. Saludos.

Etiquetas: buscador-php
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 16:54.