Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/12/2011, 08:58
josico
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Limitar números de bucles de un While

Bendito LIKE

Pues consulte esto en el foro de mysql y me decían que era imposible y que estaba prohibido pero así me ahorro muchos script php, tablas, campos y datos amen que puedo paginar más cómodamente.

Voy a poner un ejemplo bien redactado por si alguien tiene el mismo problema o la misma consulta ya que no hay artículos sobre esto. Intentare explicarlo muy claramente a la mayor brevedad.

Tenemos en este caso, una página de videos que se distribuyen en géneros y categorías. Donde cada video puede estar vinculado a una o más categorías y uno o más géneros.

Paso previo a todo esto, creamos una tabla para establecer los géneros y otra para establecer las categorías donde cada genero y categoría tendrá su propia ID en un campo primario auto incrementable.

Ahora supongamos que tengo mi página en marcha. Yo entro e mi página y veo la lista de todo los últimos videos. Pero quiero que se puedan ver por género, por categoría o por genero y categoría.
Creamos dos campos en la tabla del video donde los llamamos sex_id para genero y cat_id para categoría. Que sea de tipo text.
Ahora, cada vez que insertemos un video, en cada campo se añade las Ids correspondientes de género y categoría al que corresponda. Por ejemplo:

cat_id: ,1, ,5, ,45, ,48,
sex_id: ,2, ,5, ,8,

Al final de cada ID es importante añadir un carácter al principio y otro al final, como puede ser en este caso una coma, para si evitar que interfieran con otras cadenas.

En mi caso, pongo en el navegador index.php?sex=$id&cat=$id para determinar los videos con que género y que categoría quiero mostrar
A demás, quiero poder paginar.

Pues aquí el código que esta funcionado en mi web:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $pagina_video=$_GET['pagina']*12; /// Número de artículos por página
  4.  
  5. $num_sex=','.$_GET['sex'].','; /// Le decimos que busque el número ID que ofrecemos via GET + la coma al principio y final del número para no confundir cadenas
  6. $num_cat=','.$_GET['cat'].','; /// Le decimos que busque el número ID que ofrecemos via GET + la coma al principio y final del número para no confundir cadenas
  7.  
  8. /// Bucle que mostrara los videos segun el género sexual y categoría
  9. $sql_listar_genero_categoria='select * from videos where sex_id LIKE "%'.$num_sex.'%" AND cat_id LIKE "%'.$num_cat.'%" order by id desc limit '.$pagina_video.', 12';
  10. $query_listar_genero_categoria=mysql_query($sql_listar_genero_categoria);
  11. while($result_listar_genero_categoria=mysql_fetch_array($query_listar_genero_categoria))
  12. {
  13. ?>
  14.     <li>
  15.             <div class="clear padding10"></div>
  16.         <a title="<?=$result_listar_genero_categoria['titulo']?>" class="magnific-glass-small" href="/videos/video-<?=$result_listar_genero_categoria['id']?>.html">
  17.             <img src="<?=$result_listar_genero_categoria['imagen']?>" width="100" height="100" alt="Imagen perdida" />
  18.         </a>
  19.             <div class="clear padding10"></div>                
  20.     </li>                          
  21. <?php
  22. }                      
  23. ?>