Código PHP:
<?php
$cons = mysql_query("SELECT * FROM parametros");
$t=mysql_fetch_assoc($cons);
if(mysql_num_rows($cons)>0){
$val = $t['cons_s']+1;
echo '11S-'.sprintf("%05d",$val).'';
}
?>
| |||
![]() Buenas, lo que pasa es que a mi codigo le he agregado un consecutivo, esto me funciona bien pero como es multiusuario me crea de vez en cuando consecutivos duplicados. He leido por ahi que se debe bloquear la tabla o la base de datos para que esto no suceda pero no tengo ni idea de como incluirlo en mi codigo. Aca les dejo el codigo que me realiza el consecutivo. Código PHP: |
| ||||
Respuesta: Cosecutivo para uso multiusuario... Mira no manejes los consecutivos desde el código, si estas usando MySQL deberías de usar el Autoincrement y que sea llave Primaria la columna donde tienes el indice, MySQL genera el consecutivo automaticamente siempre y cuando lo hayas indicado. Si usas Oracle utiliza secuencias para generar el consecutivo. Crear tabla con indice con autoincrement y que sea llave primaria
Código MySQL:
Ver original Si manejas Oracle comenta y te pongo un ejemplo, saludos. |
| |||
Respuesta: Cosecutivo para uso multiusuario... Gracias por tu respuesta pero lo que pasa es que el consecutivo que estoy llevando es del tipo varchar,ya que asi me lo exigieron. Como puedes ver en el echo el consecutivo que guardo es de esta forma 11S-00001 asi debe quedar en la base de datos y pues para eso tengo una tabla que me lleva el ultimo valor entero ingresado que seria el campo cons_s. E l cual covierto en varchar con el codigo que deje antes. Pero no soy capaz de solucionar lo de los duplicados, y leyendo por ahi encontre que si se bloquea la tabla se puede hacer. Pero la verdad no tengo ni idea de como podria quedar el codigo. |
Etiquetas: |