Dificultadoes con MAX()
Publicado por Etienne Alexis (2 intervenciones) el 03/01/2017 17:06:03
Saludos, tengo un problema, al parecer, con la función MAX(). En mi base de datos existe una tabla que se llama cargos, en ella se guardan todos los cargos que lleva un paciente(tomografías, rayos x, laboratorio, etc). Cuando se ingresa en este caso un estudio de laboratorio, este debe de llevar un consecutivo LXXXX, es decir que el primer cargo de laboratorio es L0001 y así sucesivamente. Si es de rayos x entonces R0001 y si es tomografía T0001. Estos se guardan en el campo llamado: folioarea. para añadir el consecutivo primero obtengo el máximo folio mediante este código php y despues asigno el consecutivo.
El IF que ahí se menciona esta correcto, cuando verdadero, accede al resto del codigo
El problema que tengo es que cuando llega al valor L9999 se inserta el L10000 pero cuando consulto el MAX() me arroja el L9999, incluso use la función SUBSTR() pero da el mismo resultado.El código para insertar esta bien pues inserta el registro L10000 pero siempre inserta L10000 porque el MAX arroja L9999 Adjunto evidencia de fotos



1
2
3
4
5
6
7
8
9
10
if($producto>=40000 and $producto<=40679 ){
$maxz="select count(folioarea),Max(folioarea) as nf from cargos where folioarea like 'L%'";
$resultx = mysqli_query($mysqli,$maxz)or die(mysqli_error());
while($row=mysqli_fetch_array($resultx)){
$max=$row[1];
$maxl=$row[1];
$var="L".substr((substr($maxl,1)+100001),1);
}
}
echo $var;
El IF que ahí se menciona esta correcto, cuando verdadero, accede al resto del codigo
El problema que tengo es que cuando llega al valor L9999 se inserta el L10000 pero cuando consulto el MAX() me arroja el L9999, incluso use la función SUBSTR() pero da el mismo resultado.El código para insertar esta bien pues inserta el registro L10000 pero siempre inserta L10000 porque el MAX arroja L9999 Adjunto evidencia de fotos



Valora esta pregunta


0