Ver Mensaje Individual
Antiguo 16-abr-2008, 18:47   #1 (permalink)
Sergestux
Sergestux está en el buen camino
 
Avatar de Sergestux
 
Fecha de Ingreso: agosto-2007
Ubicación: Tijuas
Mensajes: 578
Enviar un mensaje por MSN a Sergestux Enviar un mensaje por Yahoo  a Sergestux
Molesto Duda con un select dentro de una Transaccion

Hola colegas del foro, veran tengo el sig. codigo PHP sin terminar donde tomo una orden (de un restaurant) para esto consulto una tabla de control donde se va almacenando el consecutivo de la orden
Código PHP:
            /*Inicio la transaccion*/
            
pg_query$conexion,  'BEGIN;');            //Inicio la Transaccion
            //Localizo el numero de orden siguiente consultando la tabla control y lo almaceno en La variable $NextOrden 
            
$SQL=SELECT control FROM control WHERE tabla='orden';
            
$Res pg_query($conexion,  $SQL);
            
$NextOrden pg_result($Res00);
            
//Inserto la orden
            
$SQL="INSERT INTO orden () VALUES()";                
            
//Actualizo la tabla control        (Update)
            
$SQL="UPDATE control SET control=" . ++$NextOrden;    //La siguente orden                        
            //Marco la mesa correspondiente como ocupada, en la  tabla Mesas    (Update)
            
$SQL="UPDATE mesas SET status=1 WHERE mesaid=" $MesaId;    //Marco la Mesa como Ocupada
            /*Termino la transaccion*/
            
pg_query$conexion,  'COMMIT;');            //Comprometo la Transaccion 
y la duda que me asalta es acerca de si mientras yo consulte el numero consecutivo dentro de una transaccion, no corro el riesgo de tomar un numero equivocado, es decir que otro usuario actualize ese numero antes que yo. Ya que en el sistema seran varios meseros utilizando la aplicacion.

Habia utilizado siempre las transacciones para hacer updates o deletes, pero no para hacer selects si alguien pordria sacarme de la duda estare muy agradecido, en caso contrario tendre que hacer las pruebas
__________________
You'll be free, hackers, you'll be free
Sergestux está desconectado   Responder Citando