Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2007, 19:11
nelsongn
 
Fecha de Ingreso: junio-2003
Ubicación: Isla de Margarita
Mensajes: 22
Antigüedad: 21 años, 8 meses
Puntos: 0
buscador que liste resultados por categoria

Saludos phperos...

Tengo una pagina que tiene un buscador, pero cuando me lista los resultados me los lista todos sin diferenciar la categoria y subcategoria donde esta creado...
la pregunta es: hay alguna forma de mostrar en la pagina de resultado cada resultado con su categoria y su subcategoria??

esta es la funcion que usa el buscador


Código PHP:
<;?
// Este archivo ha sido descargado de ww.programacionweb.net
// y contiene 3 funciones útiles para la búsqueda en una base de datos
// para instrucciones: programacionweb.net/articulos/articulo/?num=260

function buscar($sTabla,$aCampos,$cDb,$iPaginas 10){
  global 
$iTotal,$aResultados;
  
$_GET['pag'] *= 1;
  
$aPalabras split(' ',addslashes($_GET['q']));
  foreach(
$aPalabras as $sPalabra)if($sPalabra != ''){
    
$preq .= " AND ( 0";
    foreach(
$aCampos as $sCampo)$preq .= " OR $sCampo LIKE '%".$sPalabra."%'";
    
$preq .= ")";
  }
  
$iTotal mysql_result(mysql_query("SELECT COUNT(".$aCampos[0].") FROM `$sTabla` WHERE 1$preq",$cDb),0);
  
$aResultados=mysql_query("SELECT * FROM `$sTabla` WHERE 1$preq LIMIT ".($_GET['pag']*$iPaginas).",$iPaginas",$cDb);
}
function 
paginar($iPaginas 10){
  global 
$iTotal;
  
$iFinal = ($_GET['pag']+<; $iTotal/$iPaginas)?$_GET['pag']+6:round($iTotal/$iPaginas);
  
$iInicio = ($_GET['pag']-0)?$_GET['pag']-5:0;
  for(
$iTemp $iInicio$iTemp <; $iFinal$iTemp++){
     echo ((
$iTemp == $_GET['pag'])?$iTemp+1:'<;a href="?q='.$_GET['q'].'&pag='.$iTemp.'">'.($iTemp+1).'<;/a>').' ';
  }
  if(
$_GET['pag']+<; $iTotal/$iPaginas)echo '...';
  if(
$iTotal == 0)echo 'No se han encontrado resultados para su busqueda.';
}
function 
mostrar($sTitulo,$sTexto,$sId,$sUrl,$iPaginas 10){
  global 
$aResultados;
  
$aPalabras split(' ',$_GET['q']);
  while (
$aResultado mysql_fetch_array($aResultados)){
    foreach(
$aPalabras as $sPalabra)if($sPalabra != ''){
      
$iPos strpos(strtolower($aResultado[$sTexto]),strtolower($sPalabra));
      if(!isset(
$iMin) || ($iMin $iPos))$iMin $iPos;
    }
    
$sVistaPrevia substr($aResultado[$sTexto],($iMin-15 0)?$iMin-15:0300);
    
$aVistaPrevia explode(' ',$sVistaPrevia);
    if(
$iMin != 0)array_shift($aVistaPrevia);
    
array_pop($aVistaPrevia);
    
$sVistaPrevia htmlentities(implode(' ',$aVistaPrevia));
    foreach(
$aPalabras as $sPalabra)if(($sPalabra != '') && $sPalabra != 'b')$sVistaPrevia eregi_replace($sPalabra,'<;b>'.$sPalabra.'<;/b>',$sVistaPrevia);
    echo 
"<;br><;b><;a href=\"".$sUrl.$aResultado[$sId]."\">".substr($aResultado[$sTitulo],0,50)."<;/a><;/b><;br>".$sVistaPrevia."<;br><;a href=\"".$sUrl.$aResultado[$sId]."\">Ver detalles<;/a><;br>";
    
$it 1;
  }
}
?> 

y este es el codigo que esta en la pagina de resultados del buscador:



Código PHP:
<;?php
include("func/f_buscador.php");
$conexion a la BBDD
?>


<;?php
//array de la tabla
$arr_pros[0] = "nombre";
$arr_pros[1] = "mini_descripcion";
$arr_pros[2] = "descripcion";
$arr_pros[3] = "precio";
$arr_pros[4] = "referencia";
$arr_pros[5] = "fabricante";

buscar("productos",$arr_pros,$linko,10);

mostrar("nombre","mini_descripcion","idpro","detalle_pro.php?id=",10);
?> 
cabe destacar que en la bbdd hay una tabla que contiene la categoria y otra que contiene la subcategoria... y cada producto en su tabla tiene definido a que categoria y subcategoria pertenece... Saludos y espero su ayuda