Buenas a todos,soy nuevo por aqui y tambien algo nuevo en el tema PHP y mysql. Resulta que estoy realizando un sistema web de expedicion de tickets para atencion al publico, el cual consta de varios puestos o boxes de atencion. Cada box puede ser habilitado/deshabilitado a voluntad y tambien puede avisar a la clientela que esta esperando, que hay alguien en atencion actualmente. Acabada mi breve intro, les expongo mi problema actual: Realice algunas pruebas "en vivo" con boxes activos, llamando tickets al mismo tiempo y en una de esas pruebas dos boxes llamaron al mismo ticket y en ambos boxes aparecio en atencion EL MISMO NRO DE TICKET!! Era muy extraño pues en anteriores pruebas no habia tenido mayor drama. La consulta es: debo utilizar algun tipo de bloqueo de registros o tablas para que un box llame, bloquee, desbloquee y luego permita que el siguiente box(no importa si el mismo llamo un ticket a solo milesimas de segundo del anterior) llame un nro de ticket siguiente o posterior? Les posteo el codigo(disculpen lo burdo y desordenado pero estoy empezando, jiji):
Código PHP:
Ver originalif (isset($_POST["llamadas"]))
{
////////////////////////////////
$_SESSION["llamada"] = "SI";
$usuario = $_SESSION["user"];
$fechaactual = mysql_query("SELECT CURDATE()");
$fecha_actual2 = mysql_fetch_row($fechaactual);
$fecha_actual = $fecha_actual2[0];
$result = mysql_query("SELECT min(nroticket) FROM tickets_caa WHERE fecha=CURDATE() AND estado='P' and llamado = 'N'");
$result2 = mysql_fetch_row($result);
$result2 = $result2[0];
$nroticket = $result2;
$_SESSION["k_nroticket"] = $nroticket;
if ($result2==NULL)
{
?>
<script>
setInterval( "actualizar()", 1000 );
</script>
<fieldset class="campo2">
<div id="capa">
</div>
</fieldset>
<?
}
else
{
$hora_actual = date("H:i:s"); $movimiento = 'ATE';
$_SESSION["k_movimiento"] = $movimiento;
$movimiento2 = $_SESSION["k_movimiento"];
$movimientos = 'INSERT INTO movimientos_caa(usuario,fecha,hora_inicio,tipo_movimiento,nroticket)
VALUES (\''.$usuario.'\',\''.$fecha_actual.'\',\''.$hora_actual.'\',\''.$movimiento.'\',\''.$nroticket.'\')';
$llamado = "S";
$llamada = "UPDATE tickets_caa SET llamado ='$llamado',exhibido='1' WHERE nroticket = '$nroticket'";
if ($nroticket < 100)
{
echo '<fieldset class="enatencion"><div class="atendiendo">'.'En atención el Nro. de Ticket: 0'.$nroticket.'</div></fieldset>';
}
else
{
echo '<fieldset class="enatencion"><div class="atendiendo">'.'En atención el Nro. de Ticket: '.$nroticket.'</div></fieldset>';
}
$box = $_SESSION["box"];
$asignado = 'INSERT INTO tickets_box_caa(nroticket,box,fecha)
VALUES (\''.$nroticket.'\',\''.$box.'\',\''.$fecha_actual.'\')';
$mantener = "UPDATE tickets_caa SET estado = 'A' WHERE nroticket = '$nroticket' AND estado = 'P'";
}