Base de datos:
http://s2.subirimagenes.com/otros/previo/thump_8599600categorias.jpg
http://s2.subirimagenes.com/otros/previo/thump_8599603productos.jpg
Codigo:
Código:
Error:<?php include("conexion.php"); error_reporting(E_ALL & ~E_NOTICE); //filtro //si pulso el boton buscar y el cuadro busqueda contiene una palabra hacer... if ($_REQUEST["btnBuscar"] !="" && $_REQUEST["busqueda"]!="") { if (is_numeric($_REQUEST["busqueda"] )) $filtro=" and procodigo = ".$_REQUEST["busqueda"]; else $filtro=" and (pronombre like '% ".$_REQUEST["busqueda"]." %' or catnombre like '% ".$_REQUEST["busqueda"]." %')"; } else { $filtro =""; $mensaje = "<font color ='red'> Por favor escriba algo en el cuadro de texto antes de realizar la busqueda </font> "; } //fin filtro $rst_productos = mysql_query (" SELECT * FROM productos,categorias WHERE procategoria=catcodigo $filtro ; ", $conexion) or die(mysql_error()); $num_registros=mysql_num_rows($rst_productos); //informa el numero de registros encontrados if ($num_registros == 0) { if ($_REQUEST["busqueda"] != "") //estamos buscando algo $mensaje = "no se encontraron registros con la busqueda: " .$_REQUEST["busqueda"]." <a href='productos.php'> Ver todos </a> "; else //no estamos buscando nada $mensaje = "no se han encontrado productos en la base de datos "; } else { if ($_REQUEST["busqueda"] != "") //estamos buscando algo $mensaje = "se encontraron $num_registros registros con la busqueda: " .$_REQUEST["busqueda"]." <a href='productos.php'> Ver todos </a>"; else //no estamos buscando nada $mensaje = "Mostrando $num_registros productos en la base de datos "; } $registros = 20; if(isset($_REQUEST['num'])) { $pagina = $_GET['num']; } else { $pagina = 1; } if (is_numeric($pagina)) $inicio = (($pagina -1) * $registros); else $inicio = 0; $rst_productos = mysql_query (" SELECT * FROM productos,categorias WHERE procategoria=catcodigo $filtro LIMIT $inicio,$registros;", $conexion) or die(mysql_error()); $paginas = ceil ($num_registros / $registros); ?> <a href="productonuevo.php">Nuevo Producto</a> <form id="form1" name="form1" method="get" action="productos.php"> Buscar: <input name="busqueda" type="text" id="busqueda" value="<?php echo $_GET["busqueda"]; ?>" /> <input type="submit" name="btnBuscar" id="btnBuscar" value="Buscar" /> </form> <?php echo $mensaje ; ?> <table width="957" border="1"> <tr bgcolor="#FF9900"> <td width="68"><strong>Codigo</strong></td> <td width="201"><strong>Nombre producto</strong></td> <td width="88"><strong>Precio</strong></td> <td width="69"><strong>Existencia</strong></td> <td width="66"><strong>Categoria</strong></td> <td width="295"><strong>Observaciones</strong></td> <td width="66"><strong>Modificar</strong></td> <td width="52"><strong>Eliminar</strong></td> </tr> <?php while ($fila =mysql_fetch_array($rst_productos)) { ?> <tr> <td> <?php echo $fila["procodigo"]; ?></td> <td><?php echo $fila["pronombre"]; ?></td> <td><?php echo $fila["proprecio"]; ?></td> <td><?php echo $fila["proexistencia"]; ?></td> <td><?php echo $fila["catnombre"]; ?></td> <td><?php echo $fila["proobservaciones"]; ?></td> <td><a href="producto_modificar.php?cod=<?php echo $fila["procodigo"]; ?>">Modificar</a></td> <td><a href="producto_eliminar_confirmar.php?cod=<?php echo $fila["procodigo"]; ?>">Eliminar</a></td> </tr> <?php } ?> </table> <?php //paginacion //imprimir anterior if ($pagina > 1) echo "<a href='productos.php?num= ". ($pagina -1) ."&busqueda=". $_REQUEST["busqueda"]."&btnBuscar=Buscar '> Anterior </a> "; //imprimir numero de paginas if ($paginas>1) { for ($cont = 1; $cont <= $paginas; $cont++) { if ($cont == $pagina) echo $cont. " "; else echo "<a href='productos.php?num= ". $cont ." &busqueda=". $_REQUEST["busqueda"]."&btnBuscar=Buscar'> $cont </a> "; } } //imprimir siguiente if ($pagina < $paginas && $paginas>1) echo "<a href='productos.php?num= ". ($pagina +1) ."&busqueda=". $_REQUEST["busqueda"]."&btnBuscar=Buscar'> Siguiente </a> "; //fin paginacion ?>
Al buscar un numero en la caja de texto muestra el codigo del producto pero cuando escribo una palabra deberia mostrarme los productos con ese nombre o el nombre de la categoria de la tabla categorias y por pantalla me muestra: no se encontraron registros con la busqueda.
PD: Soy novato y calculo q el error esta en la variable filtro o en la consulta.
Gracias de antemano, llevo mucho tiempo depurando este codigo.
edito:el campo catcodigo (tabla categorias) se vincula con el campo procategoria (tabla productos).