Foros del Web » Programando para Internet » PHP »

Consulta aleatoria de una determinada categoría

Estas en el tema de Consulta aleatoria de una determinada categoría en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/12/2007, 17:55
Avatar de Pedro_valencia  
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 16 años, 10 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...
  #2 (permalink)  
Antiguo 30/12/2007, 18:13
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años
Puntos: 16
Re: Consulta aleatoria de una determinada categoría

seria algo asi:

$cat = 'pop';

select * from gallery_section where categoria=$cat order by rand() limit 5

saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 30/12/2007, 18:33
Avatar de Pedro_valencia  
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: Consulta aleatoria de una determinada categoría

Voy a probar.

Gracias ;)

Un saludo

EDITO: No, No funciona.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in xxx/pop.videos.php on line 24

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in xxx/pop.videos.php on line 30



Algo más?
  #4 (permalink)  
Antiguo 30/12/2007, 19:41
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 19 años, 4 meses
Puntos: 3
Re: Consulta aleatoria de una determinada categoría

select * from gallery_section where categoria='$cat' order by rand() limit 5
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
  #5 (permalink)  
Antiguo 30/12/2007, 20:03
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años
Puntos: 16
Re: Consulta aleatoria de una determinada categoría

ups se me olvido las '', que lo copie de un archivo que tengo que hace eso pero con categorias numericas :P gracias por la corrección vevni.

saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #6 (permalink)  
Antiguo 31/12/2007, 04:07
Avatar de Pedro_valencia  
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: Consulta aleatoria de una determinada categoría

Ahora sí, anoche probé con eso pero no me funcionó :S Se me colaría algo con el sueño xD

Un saludo y gracias ;)

Última edición por Pedro_valencia; 31/12/2007 a las 04:29
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.