Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2008, 17:47
Avatar de Sergestux
Sergestux
 
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
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