Esto es una duda que tengo y me gustaria saber si esta bien lo que estoy haciendo haber les dejo el problema.
El usuario 1 se conecta a mi aplicativo web y llena un formulario, ahora el usuario 2 llena el mismo formulario y los dos dan guardar al mismo tiempo, el problema es con el id que yo lo tengo que autogenerar (Capricho mio :) ) para eso hago un select a mi tabla y recupero el ultimo codigo y le sumo mas 1, tengo que bloquear mi tabla para evitar id duplicada.
Ahora asi es como lo hago:
Código PHP:
Ver original$db->consulta("LOCK TABLES notasalida AS ns READ, notasalida WRITE");
$cn = $db->consulta('SELECT MAX(ns_c_id) as codigo FROM notasalida');
$data = $db->fetch_assoc($cn);
$cod = substr($data['codigo'],2); $cod = $cod + 1;
switch($ncod){
case 1 : $ncod = "NS00000".$cod;break;
case 2 : $ncod = "NS0000".$cod;break;
case 3 : $ncod = "NS000".$cod;break;
case 4 : $ncod = "NS00".$cod;break;
case 5 : $ncod = "NS0".$cod;break;
}
$query = "INSERT INTO notasalida VALUES('$ncod','$cboAlmacen','$txtFecha','$cboRecibido','$cboMotivo','$txtReferencia','$txtObservacion','$cboAutorizacion','$txtSolicitante')";
$cn = $db->consulta($query);
$db->consulta('UNLOCK TABLES');
Me gustaría saber si esta bien o no la forma que lo hago, la tabla es MySam.
Si habrá otra forma mejor de hacerla y con un ejemplito estaría mejor :D!