Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2010, 14:56
phpdev
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Problemas con select Like en php y mysql

La cuestion es la sigueinte, tengo una base de datos con información de usuarios de un sistema que desarrolle, pero no puedo realizar una busqueda con la opcion select y like, por ejemplo:

Estructura de la tabla y contenido.

--
-- Estructura de tabla para la tabla `usuarios`
--

CREATE TABLE IF NOT EXISTS `usuarios` (
`id` int(3) unsigned NOT NULL AUTO_INCREMENT,
`user` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
`password` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`cargo` int(2) DEFAULT NULL,
`proyecto` int(3) DEFAULT NULL,
`Nombre` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `Nombre` (`Nombre`),
FULLTEXT KEY `Nombre_2` (`Nombre`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=12 ;

--
-- Volcar la base de datos para la tabla `usuarios`
--

INSERT INTO `usuarios` (`id`, `user`, `password`, `cargo`, `proyecto`, `Nombre`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 5, 1, 'Administrador General'),
(10, '12', 'e10adc3949ba59abbe56e057f20f883e', 1, 1, 'Carlos PErez'),
(5, 'Peres', '827ccb0eea8a706c4c34a16891f84e7b', 1, 1, 'Jose'),
(7, 'jp', '827ccb0eea8a706c4c34a16891f84e7b', 1, 1, 'Jose Perez'),
(8, 'PIb', 'e10adc3949ba59abbe56e057f20f883e', 1, 1, 'Oscar cv'),
(11, 'pedro', '827ccb0eea8a706c4c34a16891f84e7b', 3, 2, 'pedro');

Estos datos son de prueba, leugo el codigo php es:

$nombre=$_POST['txtNombre'];
$cargo=$_POST['select3'];
$proyecto=$_POST['select4'];
$sql= "select * from usuarios ";
$a=0;
if($_POST['txtUsuario'] != NULL){
if($a==0){$sql.=" where ";};
$sql=$sql."(user ='".$_POST['txtUsuario']."') ";
$a=1;
}
if($_POST['select3'] != 0){
if($a==0){$sql.=" where ";};
if($a==1){$sql.=" and ";};
$sql=$sql."(cargo = ".$cargo." )";
$a=1;
}
if($_POST['select4'] != 0){
if($a==0){$sql.=" where ";};
if($a==1){$sql.=" and ";};
$sql=$sql."(proyecto = ".$proyecto." )";
$a=1;
}
if($_POST['txtNombre'] != NULL){
if($a==0){$sql.=" where ";};
if($a==1){$sql.=" and ";};
$sql=$sql."(nombre LIKE \"%".$nombre."%\" || nombre LIKE \"%".$nombre."\" || nombre LIKE \"".$nombre."%\" )";
}
$sql=$sql." ORDER BY nombre ASC";

en este caso funciona todo pero al darle que busque usuarios con "ca" o "car" dentro del campo nombre solo me da el resutaldo de carlos pero no el de oscar. y asi con varias otras varias combinaciones que estubo probando el encargado de sistemas a quien le estoy haciendo el programas.

Me olvidaba de escribir si ejecuto el sql restante en el myphpadmin con el que manejo la base de datos, me da los resultados correctos.
Desde ya gracias por la ayuda. Saludos Atte.