Foros del Web » Programando para Internet » PHP »

Buscar en categorias y subcategorias

Estas en el tema de Buscar en categorias y subcategorias en el foro de PHP en Foros del Web. Buenas noches, estoy intentando buscar en una tabla de acuerdo a lo que se escribe en el campo de texto en mi formulario sumandole mas ...
  #1 (permalink)  
Antiguo 23/03/2013, 19:21
 
Fecha de Ingreso: diciembre-2005
Mensajes: 17
Antigüedad: 18 años, 4 meses
Puntos: 0
Busqueda Buscar en categorias y subcategorias

Buenas noches, estoy intentando buscar en una tabla de acuerdo a lo que se escribe en el campo de texto en mi formulario sumandole mas dos select.

Tengo una tabla disposiciones

CREATE TABLE `disposiciones` (
`Id_disposicion` INT(11) NOT NULL,
`descripcion` LONGTEXT NULL,
`id_tipo` INT(11) NULL DEFAULT NULL,
`id_tipo2` INT(11) NULL DEFAULT NULL,
`revision` INT(11) NULL DEFAULT NULL,
`mostrar` VARCHAR(200) NOT NULL,
`img_cal` VARCHAR(255) NOT NULL,
`keys` LONGTEXT NOT NULL,
PRIMARY KEY (`Id_disposicion`),
FULLTEXT INDEX `numero` (`numero`, `ano`, `descripcion`, `extra1_6`, `extra1_7`)
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM;


Y la tabla tipos

CREATE TABLE `tipos` (
`Id_tipo` INT(11) NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(255) NULL DEFAULT NULL,
`nombre_plural` VARCHAR(255) NULL DEFAULT NULL,
`mostrar` VARCHAR(2) NOT NULL,
PRIMARY KEY (`Id_tipo`)
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM
AUTO_INCREMENT=23;



Y la tabla cat_tipos
CREATE TABLE `cat_tipos` (
`id` INT(11) NOT NULL,
`id_cat_tipo` INT(11) NOT NULL,
`mostrar` VARCHAR(2) NOT NULL,
`padre_id` INT(11) NOT NULL,
`orden` INT(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE INDEX `unico` (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;

y otra tabla categorias

CREATE TABLE `categorias` (
`Id_categoria` INT(11) NOT NULL,
`nombre` VARCHAR(255) NULL DEFAULT NULL,
`mostrar` VARCHAR(2) NOT NULL,
PRIMARY KEY (`Id_categoria`)
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM;


La idea es bastante simple:

Buscar "la frase a buscar" en las categorias o subcategorias seleccionadas previamente en un formulario. Donde tienen dos select respetivos, una la de las categorias y cuando un usuario selecciona una categoria, el otro select se posiciona en la subcategoria de esa categoria seleccionada. (espero que se entienda) En esta parte no tengo problema en traer ambas consultas y unirlas en el select. El problema radica en la busqueda.


Bien, yo hice el formulario que traiga las categorias mas las subcategorias de cada categoria.Que traen de la base de datos, mas defini un campo de busqueda para las frases, en esta puse una variable llamda $cadena.

Ya he luchado mucho por el codigo, y me trabo a la hora de buscar algun texto en la tabla.

Expongo aqui mi codigo tal cual lo tengo yo.


Código PHP:
<?
# trayendo los datos de la conexion a la base de datos
 
include ("./Connections/st.php");
  
$sano "SELECT * FROM `categorias` WHERE `mostrar` = 'SI'";
  
$sano "SELECT c.*, cat.nombre as nombre, (SELECT COUNT(id) FROM cat_tipos h WHERE h.padre_id = c.id) as subs FROM  cat_tipos as c, categorias as cat WHERE padre_id = '0' AND cat.Id_categoria = c.id_cat_tipo order by c.orden asc";
  
$cat mysql_query ($sano);
  
$tre mysql_num_rows ($cat);

?>
<html>
<head>
<script type="text/javascript">
/*Generando el select*/
function seelctor(idcat) { 
switch (idcat) {
<?
    $ccase 
0;
    while (
$tre $ccase) {
      
$cat_id mysql_result ($cat$ccase,"id")."";
        
$tipos mysql_query ('SELECT c.*, cat.nombre_plural as nombre, (SELECT COUNT(id) FROM cat_tipos h WHERE h.padre_id = c.id) as subs FROM  cat_tipos as c, tipos as cat WHERE padre_id = "'.  $cat_id .'" AND cat.Id_tipo = c.id_cat_tipo');
        
$cuat=mysql_num_rows ($tipos);
        
$subc=0;
        
$scats "<OPTION VALUE=\"\" SELECTED= \"SELECTED\">Seleccionar una subcategoria</OPTION>";
        while (
$subc $cuat) {
/* */
            
$vsubcat_nom mysql_result($tipos$subc"nombre")."";
        
$vid_cat_tipo  =mysql_result($tipos$subc"id_cat_tipo")."";

            
$scats $scats."<OPTION VALUE=\"".$cat_id."-".$vid_cat_tipo."\">".$vsubcat_nom."</OPTION>";
/* */
            
$subc++;
        }
    echo     
"case '".$cat_id."': varsel = '".$scats."'; break \n";
      
$ccase++;
   }
?>
    default:
       varsel = "dd"; break 

document.getElementById('subcats').innerHTML = varsel;

}
</script>
</head>
<body>
 <?
 
   $arracats
="";
  if (
$tre != 0) {
    
$c =0;
    while (
$tre $c) {
      
$cat_id mysql_result ($cat$c,"id")."";
      
$cat_nom mysql_result ($cat$c,"nombre")."";
      
$arracats $arracats."<OPTION VALUE=\"".$cat_id."\">".$cat_nom."</OPTION>";
      
$c++;
    }
    echo 
"
    <SELECT NAME=\"cates\" ID=\"cates\"   onchange=\"javascript: seelctor(this.value);\">\n<OPTION VALUE=\"\"  SELECTED= \"SELECTED\">Seleccionar una categoria</OPTION>\n"
.$arracats."</SELECT>
    "
;
  } 
  else {
    echo 
" mmm , no hay caetegorias";
  }



?>
<SELECT NAME="subcats" ID="subcats"></SELECT>

<hr>

<?
#formulario
$cadena "Nacional";  #CAMPO INPUT
$desdesubcategortia explode("-","70-4"); #subcats
$categ$desdesubcategortia[0];
$vid_cat_tipo=$desdesubcategortia[1];
##########################


$textobuscar "
 AND (`numero` LIKE '%"
.$cadena."%'
OR `ano` LIKE '%"
.$cadena."%'
OR `descripcion` LIKE '%"
.$cadena."%' 
OR `extra1_1` LIKE '%"
.$cadena."%' 
OR `extra1_2` LIKE '%"
.$cadena."%' 
OR `extra1_3` LIKE '%"
.$cadena."%' 
OR `extra1_6` LIKE '%"
.$cadena."%' 
OR `extra1_7` LIKE '%"
.$cadena."%' 
OR `extra1_8` LIKE '%"
.$cadena."%' 
OR `extra2_1` LIKE '%"
.$cadena."%' 
OR `extra2_2` LIKE '%"
.$cadena."%' 
OR `extra2_3` LIKE '%"
.$cadena."%' 
OR `extra2_4` LIKE '%"
.$cadena."%' 
OR `extra2_5` LIKE '%"
.$cadena."%' 
OR `extra2_6` LIKE '%"
.$cadena."%' 
OR `extra2_7` LIKE '%"
.$cadena."%' 
OR `extra2_9` LIKE '%"
.$cadena."%' 
OR `extra2_10` LIKE '%"
.$cadena."%' 
OR `extra2_11` LIKE '%"
.$cadena."%' 
OR `extra2_12` LIKE '%"
.$cadena."%' 
OR `extra2_13` LIKE '%"
.$cadena."%' 
OR `extra2_14` LIKE '%"
.$cadena."%' 
OR `extra2_15` LIKE '%"
.$cadena."%' 
OR `extra2_17` LIKE '%"
.$cadena."%' 
OR `extra2_18` LIKE '%"
.$cadena."%' 
OR `extra2_19` LIKE '%"
.$cadena."%' 
)"
;
/* */ 
$str_cualquier "
SELECT 

d.Id_disposicion as id, CONCAT(d.numero, ' / ', d.ano) as nom, numero, ano, d.extra1_2 as mes

FROM
disposiciones as d,  
cat_tipos as ct, 
categoriadisposicion cd
WHERE
d.mostrar='SI' 
"
.$textobuscar." LIMIT 100
 "
;
 
echo 
"<br>loquesea\n".$str_cualquier."\nloquesea\n<br>";

$mq mysql_query($str_cualquier);
echo 
"<br>loquesea\n".mysql_num_rows ($mq)."\nloquesea\n<br>";
?>

</body>
</html>

Estoy intentando dia a dia, y todavia no se mas que puedo hacer. Si alguien tiene algun consejo, o pueda darme una manito, estare infinitamente agradecido.
  #2 (permalink)  
Antiguo 23/03/2013, 20:37
 
Fecha de Ingreso: diciembre-2005
Mensajes: 17
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Buscar en categorias y subcategorias

Bueno, para empezar:

En la tabla disposiciones, se encuentran datos numericos, de textos, etc. En un campo que se llama
"descripcion" se encuentran textos, dentro de ese campo en particular quiero buscar el texto que se introduce en el formulario. Es tambien importante que "solo busque" en la categoria y en la subcategoria elegida dentro del formulario, que se elige en los selects.

Y la tabla tipos estan los nombres de las categorias, para aclarar, solos los nombres.


Y la tabla cat_tipos estan por ejemplo padre_id, id_cat_tipo, id, etc donde se encuentra en que posicion tiene cada categoria

Y otra tabla "categorias" se encuentran los nombre de las categorias


Al traer ambas consultas, tanto la categoria como la subcategoria no tengo problema en ello.

Solo que no puedo traer la consulta, o sea, no logro buscar ese texto en la categoria seleccionada mas la subcategoria elegida.

Si algo mas necesitan saber, estoy a las ordenes.

Etiquetas: categorias, mysql, subcategorias
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 04:27.