Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2007, 17:55
Avatar de Pedro_valencia
Pedro_valencia
 
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 16 años, 4 meses
Puntos: 6
Consulta aleatoria de una determinada categoría

Buenas, he creado un sistema de videos con categorias pero ahora quiero mostrar 5 videos que tengan en el campo categoria el valor pop por ejemplo.

Es decir, mostrar 5 videos aleatorios de la categoría pop.

Y he creado el siguiente código:

Código PHP:
<div id="cabecera_otrosvideospop">
<?php

//  Conecta con el servidor mysql
  
$link mysql_connect('localhost',  'xxxxxx''xxxxxx');
  if(!
$link) {

    
// Si no  conecta, muestra un error y termina la ejecución
    
die('No  se pudo conectar con la base de datos:' mysql_error());
 }
  if(!
mysql_select_db('xxxxxxxxxx',  $link))
  {

    
// Si no  se puede seleccionar muestra error y termina ejecucion
     
die('Error seleccionando base de datos: ' mysql_error());
  }
   
$result=mysql_query("select * from videos ORDER BY RAND() LIMIT 5",$link); 

while(
$row mysql_fetch_array($result)) {
if(
$row['categoria'] == "pop"){
?>
<a href="http://www.xxxxxxx.com/index.php?pagina=vervideos&id=<?echo$row['id_video'];?>" title="<?echo$row['nombre'];?><?echo$row['desc'];?>"><img src="images_videos/<?echo$row['imagen'];?>" class="border_mouse_grande" onmouseover="this.className='border_mouse_grande_on'" onmouseout="this.className='border_mouse_grande'"></a>&nbsp;
<?  }else{}
  }
   
mysql_free_result($result);
?>
<div valign="bottom" align="right" style="float:right;">
<img src="./images/pestaña_masvistos.png" alt="Videos más reproducidos">
</div>
</div>
<BR /><BR />
<?
//  Conecta con el servidor mysql
  
$link mysql_connect('localhost',  'xxxxxxx''xxxxxxx');
  if(!
$link) {

    
// Si no  conecta, muestra un error y termina la ejecución
    
die('No  se pudo conectar con la base de datos:' mysql_error());
 }

  if(!
mysql_select_db('xxxxxxxx',  $link))
  {

    
// Si no  se puede seleccionar muestra error y termina ejecucion
     
die('Error seleccionando base de datos: ' mysql_error());
  }
   
$result=mysql_query("select * from videos ORDER BY id_video DESC",$link); 

while(
$row mysql_fetch_array($result)) {
if(
$row['categoria'] == "pop"){
?>
<div class="caja_videos_enteraostv" />
<div align="center" />
<a href="http://www.xxxxxx.com/index.php?pagina=vervideos&id=<?echo$row['id_video'];?>" title="<?echo$row['nombre'];?><?echo$row['desc'];?>"><img src="images_videos/<?echo$row['imagen'];?>" class="enteraostv_caja_imagen"></a>
</div>
<br />
<div align="left" />
<div id="enteraostv_caja_titulo">Título</div>&nbsp;<?echo$row['nombre'];?><br />
<div id="enteraostv_caja_descripcion">Descripción</div>&nbsp;<?echo$row['desc'];?><br />
</div>
</div>
<?  
  
}else{}
  }
   
mysql_free_result($result);
   
?>
Como veis el siguiente trozo:

Código PHP:
$result=mysql_query("select * from videos ORDER BY RAND() LIMIT 5",$link); 
Hace la consulta a la Base de datos.

Y al hacer la consulta de esa forma por el condicional if solo muestra los videos de esa consulta que tengan en el campo categoría el valor "pop".

Y entonces no se muestran 5 videos, porque puede coger videos que no tengan en el campo categoría el valor "pop" y después el if no mostrarlos.

Lo que quiero es que al hacer la consulta solo coja los videos que tengan en el campo categoría el valor "pop".

Esto como lo puedo hacer?

He probado con WHERE categoria=pop

Pero no funciona, por probar que no quede xD

Un saludo...