El tema con ésto es que era un laburito muy sencillo que me animé a hacer, pero después me cambiaron los tantos y me mataron.
Estuve todo el día tratando de ordenar ésto y definí los posibles valores de las variables con php para tratar de no hacer tanta mezcla, pero me da que no hay productos disponibles a la venta.
Paso el código completo cómo quedó esperando opiniones que me salven.
Código PHP :
<?
//Aca defino si tengo filtros: primero si hay algo en el buscador, si no filtra si hay idcat, tercero si hay idsubcat y si no hay ninguno $where esta vacio.
// a su vez defino cual es el orden, sobre todo porque en el caso de que haya idcat, creo que no puedo ordenar por idcat. Teóricamente sólo puede entrar un filtro por vez.
if(isset($_GET["busquen"])){
$busqueda=$_GET["busquen"];
$where=" WHERE nombre LIKE '%" . $busqueda . "%' or marca LIKE '%" . $busqueda . "%' or descripcion LIKE '%" . $busqueda . "%' or descripcionLarga LIKE '%" . $busqueda . "%' or nombreSubcat LIKE '%" . $busqueda . "%'";
$orden="ORDER BY prioridad ASC,idcategoria ASC,idproducto DESC ";}
elseif (isset($_GET["idcat"])){
$where=" WHERE idcategoria=".$_GET["idcat"];
$orden="ORDER BY prioridad ASC,idproducto DESC ";}
elseif (isset($_GET["idsubcate"])){
$where="WHERE idSubcat=".$_GET["idsubcate"];
$orden="ORDER BY prioridad ASC,idproducto DESC ";}
else {
$where="";
$orden="ORDER BY prioridad ASC,idcategoria ASC,idproducto DESC ";}
$consulta="SELECT * FROM productos".$orden.$where;
$resultado=mysql_query($consulta);
if(!@mysql_num_rows($resultado)) {
echo "<br> <br> No hay productos disponibles a la venta";
} else {
//Acá lo que hago es hacer una consulta a otra tabla para, en el caso de que venga por get idcat, poder hacer un pequeño menú por subcat antes de listar los productos.
if(isset($_GET["idcat"])) $where_subcat=" WHERE idcategoria=".$_GET["idcat"];
else $where="";
if(isset($_GET["idcat"])) {
$consulta_subcat="SELECT idSubcat,nombreSubcat FROM subCat".$where_subcat;
$resultado_subcat=mysql_query($consulta_subcat);
?><br /><span class="links"> <? while($fila_subcat=mysql_fetch_assoc($resultado_subcat)) {
echo '<a href="modelo.php?p=catalogo&idsubcate='.$fila_subcat["idSubcat"].'"><span class="links"> '.$fila_subcat["nombreSubcat"].'</span></a> ';
}
} ?></span>
<div>
</div>
<div id="prodCat">
<?
while($fila=mysql_fetch_assoc($resultado))
{
?>
<div class="articulo">
<div class="foto"><a href="modelo.php?p=detalle_producto&id=<? echo $fila["idproducto"]; ?>"><img src="phpThumb/phpThumb.php?src=../<? echo $fila["imagen"]; ?>&h=125 &w=120 &far=1" border="0"></a></div>
<div class="descripcion">Descripción</div>
<div class="textoDescrip"><p><span class="nombreCatal"><? echo $fila["nombre"]; ?></span><br />
<? echo $fila["marca"]; ?><br />
<!-- $ <? //echo $fila["precio"]; ?><br />-->
<? echo $fila["descripcion"]; ?></p>
</div>
</div>
<?
}
?>
</div>
<? } ?>
<p> </p>