Comunidad de diseño web y desarrollo en internet online

Continuar iterando un bucle después de haberlo pausado

Citar            
MensajeEscrito el 08 Sep 2011 03:31 pm
Hola, tengo una base de datos de productos para un catalogo, voy a colocar filtros por categorías de esos productos, y tengo el siguiente código para generar un listado de categorías:

Código PHP :

   <ul id="filter">
<?
for ($i=0; $i <$numresults; $i++)
{
?>   
   <li>
    <?   
        $row=mysql_fetch_array($resul); 
   $category = '<a href="#">'.($row['categoria']).'</a>';
   echo ($category);
   ?>
    </li>
    
<?
}
?>
   </ul>


Donde 'categoria' es un campo de la base de datos. Hasta aquí todo perfecto, el problema que tengo es cuando las categorías de esos productos se repitan, las va a listar igualmente. Intenté poniendo un if ($category = $category) {break;} y frena el bucle, pero no logro hacer que continúe iterando en el lugar donde se detuvo. Continue; no hizo nada tampoco, ni lo logré colocando un else if y declarando el echo. En definitiva lo que necesito es listar todas las categorías (extraidas desde la base de datos) ocultando las veces que se repitan.

Por mike2586

8 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 08 Sep 2011 03:52 pm
Listo ya lo solucioné, más fácil imposible... Usando DISTINCT en la sentencia MySQL que hace el query a la base de datos, de este modo limpio el bucle y coloco el echo directamente sin meterlo en una variable y quedaría de al siguiente manera:

Código PHP :

<?
$query="SELECT DISTINCT categoria FROM catalogo ORDER BY id asc";
$resul=mysql_query($query);
$numresults=mysql_num_rows($resul);
?>
   <ul id="filter">
<?
for ($i=0; $i <$numresults; $i++)
{
?>   
   <li>
    <?   
    $row=mysql_fetch_array($resul); 
   echo '<a href="#">'.($row['categoria']).'</a>';
   ?>
    </li>
    
<?
}
?>
   </ul>

Por mike2586

8 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.