Foros del Web » Programando para Internet » PHP »

problema con numeros aleatorios

Estas en el tema de problema con numeros aleatorios en el foro de PHP en Foros del Web. Hola buen dia a todos. Tengo el siguiente script que me genera números aleatorios entre el 1 hasta el 20, lo primero que hago tomo ...
  #1 (permalink)  
Antiguo 18/12/2011, 13:14
 
Fecha de Ingreso: febrero-2009
Mensajes: 61
Antigüedad: 15 años, 2 meses
Puntos: 1
problema con numeros aleatorios

Hola buen dia a todos.
Tengo el siguiente script que me genera números aleatorios entre el 1 hasta el 20, lo primero que hago tomo la hora en este momento y le suma una hora para saber a que hora termina su tiempo del usuario y luego se lo asigno a una caja de texto, cuando se genera el primer numero aleatorio, realizo una consulta que busca en la base de datos en la tabla control si ese numero hay uno igual con la fecha de hoy y si hay se refresca la pagina para generar otro numero aleatorio.

Pero tengo los siguientes problemas:

1.- utilizo un ciclo while para recorrer cada uno de los registros y después utilizo un if para hacer la comparación del numero y de la fecha, entonces cada vez que entra en el bucle while y se compara el numero que se genere al no existir uno igual en la tabla control se imprime el mensaje de pc libre en pantalla. por ejemplo si tengo 10 numero registrados en la base de datos que fueron generados aleatoriamente y cuando se genera un numero cualquiera entre el rango cuando entre en el bucle while y pase por el if al no existir este me imprime en pantalla 10 veces pc libre, porque son 10 veces que se entro en el bucle while, entonces mi pregunta es como hacer que cuando pase por el bucle while esas 10 veces solo me imprima pc libre en pantall a una vez.

2.- utilizo este etiqueta para refrescar la pagina <meta content='1' http-equiv='REFRESH'> </meta> existirá una forma para que se genere otro numero aleatorio sin que se refresque la pagina.

Este es el código que utilizo:

Código PHP:
<?php
$fecha
=date("Y-m-d");
$horain=date("H:i:s");
$Horain Time(); // Hora actual
$Horafi Time() + (60 *60 1);//hora actual + 1 hora para saber a que hora sale el usuario

$num=rand(1,20);

//se conecta a la base de datos
$host="localhost";
$usuario="root";
$password="matrix";
$conectar=mysql_connect($host$usuario$password);
mysql_select_db("centro"$conectar);
$consulta="select pc, fecha from control where fecha='$fecha'";
$query mysql_query($consulta$conectar) or die(mysql_error());

while (
$row=mysql_fetch_array($query)) { //recorre los registros devueltos
//comprobar si existe en la base datos, si existe nos manda un mensaje de que ya existe

if ($num == $row['pc'] && $fecha == $row['fecha']) {
echo 
"<meta content='1' http-equiv='REFRESH'> </meta> ";

}else{
echo 
"Esta libre la PC:";
}
}
?>
También otro cosa este script al generar los 20 numeros y se den de alta en la base de datos cuando se genere otro numero aleatorio entra se cicla, es decir se continua actualizando, hasta que le quito la etiqueta meta que solución le puedo dar para que esto no ocurra Tambien si quiero hacer que cuando se genere los 20 numeros aleatorios me muestre un mensaje de todos los números ya existen solo por mencionar un ejemplo de mensaje se deje de generar los números aleatorios.

Ya probe algunos métodos sin darme resultado.

Alguna idea para la posible solución.

Gracias y saludos.
  #2 (permalink)  
Antiguo 18/12/2011, 13:38
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: problema con numeros aleatorios

Yo pondría
$num=rand(1,20); de nuevo después de
if ($num == $row['pc'] && $fecha == $row['fecha']) {

en lugar de recargar la página

Etiquetas: mysql, numeros, registro, sql, tabla, aleatoria, usuarios
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 11:24.