Foros del Web » Programando para Internet » PHP »

Pulir una consulta por categorías

Estas en el tema de Pulir una consulta por categorías en el foro de PHP en Foros del Web. Hola: Tengo el codigo de un directorio de clientes terminado y funcionando muy bien, sin desplegar errores ni nada pero, acabe de descubrir que tiene ...
  #1 (permalink)  
Antiguo 06/03/2006, 12:56
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Pulir una consulta por categorías

Hola:

Tengo el codigo de un directorio de clientes terminado y funcionando muy bien, sin desplegar errores ni nada pero, acabe de descubrir que tiene una falla.

La consulta se realiza a través de dos listas dependientes, categoria y subcategoria respectivamente. Seleccionas la categoria y se te muestra, si tiene, la subcategoria a sociada, haces click en consulatr y listo, te muestra los clientes que coinciden con la categoria y/o subcategoria que traes.

El problema es que la consulta se realiza a traves de los ID de cada uno, es decir, el id de la categoria y el de la subcategoria.

Me encuentro entonces con que el cliente con categoria 93 y subcategoria 50 se muestra cuando escojo en las lista diseñadores - diseño grafico... Perfecto

Pero, cuando quiero mostrar al cliente diseñadores - diseño web (cat. 93 - subcat. 56) se me muestra el cliente y otro que no tiene nada que ver con diseño web. Lo que pasa es que el otro cliente que es profesor de baile tiene categoria 436 y subcategoria 256.

Obviamente hay un problema con la similitud de las subcategorias.

Como se puede depurar mi codigo para que se limite a mostrar la coincidencia exacta y no sus similares?

Espero hacerme entender por ser conceptual lo que busco. Si necesitan el codigo lo pongo....

Gracias
  #2 (permalink)  
Antiguo 06/03/2006, 13:23
 
Fecha de Ingreso: enero-2006
Mensajes: 54
Antigüedad: 18 años, 3 meses
Puntos: 0
Hola, pues por lo que expresas parece que para tu consulta estubieses usando el operador like, que te muestra los que contienen el criterio de busqueda que le estas pasando y no los que son iguales dicho criterio, en lugar del =. Si este no es el caso creo que seria necesario revisar al menos parte de tu codigo para poder buscar la falla.

Espero haberte ayudado en algo. Bye
  #3 (permalink)  
Antiguo 06/03/2006, 13:51
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Si uso like

Código PHP:
<?
//inicializo el criterio y recibo cualquier cadena que se desee buscar 
$criterio ""
$txt_criterio "";
if (empty(
$id_hija)){
 
$txt_criterio=$id_padre;
 
$criterio " where categoria like '%" $txt_criterio "%' OR subcategoria like '%" $txt_criterio "%'"
}else
if (isset(
$id_hija)){
 
$txt_criterio=$id_hija;
 
$criterio " where categoria like '%" $txt_criterio "%' OR subcategoria like '%" $txt_criterio "%'"
}
 
$sql="SELECT * FROM clientes".$criterio
$res=mysql_query($sql); 
$numeroRegistros=mysql_num_rows($res); 
if(
$numeroRegistros<=0)
{
//...etc etc
?>
Antes que todo me conecto, claro.

Lo cambie por:

Código PHP:
<?
//inicializo el criterio y recibo cualquier cadena que se desee buscar 
$criterio ""
$txt_criterio "";
if (empty(
$id_hija)){
 
$txt_criterio=$id_padre;
 
$criterio " where categoria = '$txt_criterio' OR subcategoria = '$txt_criterio'"
}else
if (isset(
$id_hija)){
 
$txt_criterio=$id_hija;
 
$criterio " where categoria = '$txt_criterio' OR subcategoria = '$txt_criterio'"
}
 
$sql="SELECT * FROM clientes".$criterio
$res=mysql_query($sql); 
$numeroRegistros=mysql_num_rows($res); 
if(
$numeroRegistros<=0)
{
//...etc etc
?>
Y listo, asi funciona perfecto.. Muchas gracias por tu ayuda csalazar146!
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 12:33.