Foros del Web » Programando para Internet » PHP »

detener la generacion de numeros aleatorios

Estas en el tema de detener la generacion de numeros aleatorios en el foro de PHP en Foros del Web. buenas a todos. Estoy desarrollando una aplicacion para controlar un centro de computo pequeño alrededor de 20 PC,S se da una hora a cada usuario ...
  #1 (permalink)  
Antiguo 11/12/2011, 23:38
 
Fecha de Ingreso: febrero-2009
Mensajes: 61
Antigüedad: 15 años, 9 meses
Puntos: 1
detener la generacion de numeros aleatorios

buenas a todos.

Estoy desarrollando una aplicacion para controlar un centro de computo pequeño alrededor de 20 PC,S se da una hora a cada usuario entonces lo que hago es que el sistema genere un numero aleatorio del 1 al 20 y si lo hace, pero cuando se genere todos las 20 pc,s los numeros aleatorios se sigue generando, quiza porque cuando se genere el numero se realiza una consulta a la base de dados para ver si ese numero se a dado a algun usuario y si ya se asigno se refresca la pagina para generar otro numero. Cuando se refresca la pagina se pierde los datos del usuario traidos desde la base de datos.

Quisiera mostrar tambien que cuando se ocupen las 20 pc se muestre un mensaje de que todas estan en uso y cuando termine la hora de algun usuario, muestre otro mensaje de pc desocupado para darse a otro usuario.

Tengo una tabla donde se guarda los datos del usuario como son matricula, nombre, apellidos, grupo, semestre, el numero de pc, la fecha, hora de entrada y hora de salida

este es el script que estoy usando hasta el momento:

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 termina el usuario

$num=rand(1,20);//genero los numeros aleatorios

//conecto a la base de datos
$host="localhost";
$usuario="root";
$password="";

$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)) {

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

}else{
echo 
"Esta libre la PC:";

}
}
?>
Alguna sugerencia e ideas es bien recibido, gracias .

Saludos.
  #2 (permalink)  
Antiguo 12/12/2011, 01:25
 
Fecha de Ingreso: diciembre-2011
Mensajes: 4
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: detener la generacion de numeros aleatorios

Te explico como lo haría yo.

Para controlar / asignar los libres
SELECT pc FROM control WHERE libre = 'si' ORDER BY rand LIMIT 1

PAra verificar periodicamente que ya ha pasado la hora
SELECT pc FROM control WHERE libre='no' AND fecha < date_sub(now(), interval 1 HOUR)
  #3 (permalink)  
Antiguo 12/12/2011, 10:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 61
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: detener la generacion de numeros aleatorios

gracias por tu respuesta, estoy viendo la forma de interpretar tu idea, habra que agregar una nueva columna de libre en la tabla control o las consultas se haria directamente en mysql sobre la tabla control.

saludos.

Etiquetas: detener, mysql, numeros, 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:14.