Foros del Web » Programando para Internet » PHP »

Esta bien esta consulta?

Estas en el tema de Esta bien esta consulta? en el foro de PHP en Foros del Web. Código PHP: $consulta   =  "SELECT * FROM registro WHERE  ncompleto='$dato' or  cod='$dato' or correo='$dato' ORDER BY nombre ASC" ;     mysql_real_escape_string ( $dato );     mysql_error ();  no muestro la parte donde se hace el while ...
  #1 (permalink)  
Antiguo 29/03/2011, 19:03
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 13 años, 9 meses
Puntos: 4
Esta bien esta consulta?

Código PHP:
$consulta  "SELECT * FROM registro WHERE  ncompleto='$dato' or 
cod='$dato' or
correo='$dato' ORDER BY nombre ASC"
;
   
mysql_real_escape_string($dato);
   
mysql_error(); 
no muestro la parte donde se hace el while mysql_fe... porke lo que pasa es que si hace la consulta bien la cuestion es que no la hace como quiero porque por ejemplo en mi base de datos almaceno el nombre completo del usuario y bueno la consulta se la hago al nombre completo al correo a un cod pero resulta que cuando alguien ingresa algun nombre completo o solo un nombre...ps deberia de buscar coincidencias no? entonces no busca y me dice que no hay resultados pero si busco por el correo si lo hace bien y me muestra el resultado y todo...estoy pensando que sean los espacios en blanco...porq el correo no tiene espacios en blancos pero el nombre completo si...entonces como podria solucionar el problema gracias :D
  #2 (permalink)  
Antiguo 29/03/2011, 19:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Esta bien esta consulta?

Debes escapar $dato antes de crear $consulta, de lo contrario, no tiene caso que lo hagas.

Y, por otra parte, podrias considerar LIKE en lugar de = para buscar solo por partes:

-- Contenido igual al inicio de la columna
campo LIKE 'contenido%'

-- Contenido igual al final de la columna
campo LIKE '%contenido'

-- Contenido igual en cualquier posicion de la columna
campo LIKE '%contenido%'
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 29/03/2011, 19:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Esta bien esta consulta?

para eso necesitas SQL LIKE

PD: se me adelantaron otra vez!!!!
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 29/03/2011, 19:36
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Esta bien esta consulta?

entonces ya lo hice y la consulta me queda asi

Código PHP:
$consulta  "SELECT * FROM registro WHERE 
   ncompleto LIKE '%$dato%' OR
   cod LIKE '%$dato%' OR
   correo LIKE '%$dato%' ORDER BY nombre ASC"
;
   
mysql_real_escape_string($dato);
   
mysql_error(); 
pero de igual forma no lo hace yo pongo el nombre completo con apellido y todo y nada
  #5 (permalink)  
Antiguo 29/03/2011, 23:33
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Esta bien esta consulta?

Que motor de base de datos estas usando: MyISAM o InnoDB?
El juego de caracteres de la tabla es UTF o ISO y al final tiene _ci?
Estas involucrando caracteres latinos (á, é, ñ, etc.) y guardandolos normal o por su entidad html (á &eacute, ñ etc)?

Repito: La linea del mysql_real_escape_string() debe estar arriba de donde creas $consulta, para que $dato pueda ser escapado correctamente.
__________________
- León, Guanajuato
- GV-Foto

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 15:25.