Ver Mensaje Individual
  #14 (permalink)  
Antiguo 15/11/2006, 10:33
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Pues poniendolo como yo lo hacia, te quedaría así:
Código PHP:
<?php
// datos de conexion y selección de bd
mysql_pconnect'servername''username' 'password' );
mysql_select_db'base_de_datos' );

$consulta "SELECT ID FROM tabla ORDER BY Numero_chances DESC"// obtenemos todos los ID de los números de chances ordenados en forma descendente
$res mysql_query$consulta ); // ejecutamos la consulta
$num_res mysql_num_rows$res ); // obtenemos el número de resultados que se devolvieron

if ( $num_res )
{
   while( 
$fila mysql_fetch_array$res ) )
   {
      
$todos_los_chances[] = $fila['ID']; // asignamos a un array todos los ID de los números de chances
   
}

   
mysql_free_result$res ); // liberamos memoria

   // ordenamos la matriz de forma aleatoria
   
srand ( ( float ) microtime () * 1000000 );
   
shuffle $todos_los_chances );

   
// agarramos sólo 9 valores (o los que necesites, sólo modifica el no. 9 en el bucle) y los almacenamos en otro array
   
for ( $e 0$e 9$e++ )
   {
      
$a_mostrar[] = $todos_los_chances[$e];
   }

   
$mostrar implode","$a_mostrar ); // convertimos en cadena el array $a_mostrar separando los ID por una coma para así pasarselo a la consulta que nos traerá los resultados

   
$consulta2 "SELECT * FROM tabla WHERE ID IN ( $mostrar ) ORDER BY Num_chances DESC"// obtenemos todos los registros que coincidan con los ID de la variable $mostrar
   
$res2 mysql_query$consulta2 ); // ejecutamos la consulta
   
$num_res2 mysql_num_rows$res2 ); // obtenemos el número de resultados que se devolvieron

   
if ( $num_res2 // si se obtuvieron resultados los mostramos en pantalla
   
{
      while ( 
$fila2 mysql_fetch_array$res2 ) )
      {
// mostramos los resultados en pantalla, yo los mostre así pero tu puedes mostrarlos en una tabla o como se te de la gana
         
echo "ID: ".$fila2['ID']." Número de chances: ".$fila2['Numero_chances']." Número de texto: ".$fila2['Numero_Text']." Número de Contenido: ".$fila2['Numero_Conten']."<br/>";
      }
      
mysql_free_resul$res2 ); // liberamos memoria
   
}
   else
   {
      echo 
'Ocurrio un error: No se obtuvieron resultados con los ID de la variable $mostrar.';
   }
}
else
{
   echo 
"No se obtuvieron resultados. Por favor intentelo más tarde.";
}
?>
Como podrás darte cuenta lo único que cambie fue la primer consulta para que en lugar de obtener el Numero_chance obtengamos el ID (esto te va a funcionar sólo si tu campo ID es autoincrement), y despues de esto los valores obtenidos al azar los pasamos a un array para que a este se le ordene de forma aleatoria. Despues lo agarramos sólo los 9 primeros y se los pasamos a otro array para convertirlo en cadena y esta pasarsela a otra consulta que se encargará de obtener todos los registros que coincidan con esos 9 ID para después mostrarlos en pantalla. Espero haberme dado a entender y que ahora sí sea lo que necesitabas. Suerte

Última edición por Erikfrancisco; 15/11/2006 a las 11:42