Foros del Web » Programando para Internet » PHP »

Realizar un random hasta que exista la id en la db

Estas en el tema de Realizar un random hasta que exista la id en la db en el foro de PHP en Foros del Web. Hola miren, primero lo que hago es calcular cual es la máxima ID: Cita: $lastidroomq = mysql_query("SELECT id FROM rooms ORDER BY id desc LIMIT ...
  #1 (permalink)  
Antiguo 27/03/2011, 02:24
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Realizar un random hasta que exista la id en la db

Hola miren, primero lo que hago es calcular cual es la máxima ID:

Cita:
$lastidroomq = mysql_query("SELECT id FROM rooms ORDER BY id desc LIMIT 1");
$lastidroom = mysql_fetch_array($lastidroomq);
$roommaxid = $lastidroom['id'];
Y luego hago un random

Cita:
$rand_room = rand(1,$roommaxid);
El problema esque las id de algunas salas no existen porque pueden ser borradas, como puedo hacer para que si la id no existe en la db vuelva a hacer de nuevo el random?

Intenté crear una función

Cita:
function random(){
$rand_room = rand(1,$roommaxid);
}
random();
//el sql para saber si existe esa id en la db con mysql_num_rows
if($exist == "0"){
random();
}
Pero al hacer eso me tarda mucho en cargar la página y da error de que tardó mas de 60 segundos en ejecutarse

Como lo puedo hacer?
  #2 (permalink)  
Antiguo 27/03/2011, 03:10
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 13
Respuesta: Realizar un random hasta que exista la id en la db

Hola SeaPirates,

supongo que el retraso en la carga de la página se debe a que vuelves a acceder a la BD cada vez que se genera un numero al azar y este no coincide con ningún registro de la tabla.

Podrias meter los valores que te devuelva el select en un array y usar un bucle para comparar, así, si no está el valor que has generado con el random, no tienes que volver a aceder a la bd cada vez, solo generas otro numero al azar y vuelves a buscar con el bucle.
  #3 (permalink)  
Antiguo 27/03/2011, 05:33
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Realizar un random hasta que exista la id en la db

Lo he intentado, pero no se como hacer el bucle

Etiquetas: random, realizar
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 16:20.