Generar Nº Solicitud Php

Tengo el siguiente problema estoy haciendo un programa que guarde la soicitud de una persona pero necesito que a medida que la persona guarde una solicitud por Ejemplo 2004-1 cuando otra persona haga otra solicitud le aparezca 2004-2 así sucesivamente.
Lo hice de esta forma: En la tabla variablesurb tengo un campo <num> y otro <ano> ademas de otros campos
$ano = date("Y");
$sql_num = "SELECT max(num) FROM `variablesurb` WHERE ano=$ano";
$num= mysql_query($sql_num, $conexion);
while ($res= mysql_fetch_array($num))
{
$numero= $res[0] + 1;
}
$num_sol = $ano."-".$numero;
Esto funciona hasta el num_sol= 2004-10 pero cuando tiene que generar la 2004-11 no lo hace vuelve a poner 10. Mando a imprimir $numero y siempre es 10.

3 respuestas

Respuesta
1
Prueba con:
$ano = date("Y");
$sql_num = "SELECT max(num) FROM `variablesurb` WHERE ano=$ano";
$res= mysql_query($sql_num, $conexion);
$numero=mysql_result($res,0,0)+1;
$num_sol = $ano."-".$numero;
Después de cada solicitud debe incrementarse ese número:
$sql_num = "UPDATE `vb` SET num=$numero WHERE ano=$ano";
$res= mysql_query($sql_num, $conexion);
Respuesta
1
No entiendo muy bien por qué pones un while en la programación. Cambia el bloque del while por esto:
$res= mysql_fetch_array($num);
$numero= $res[0] + 1;
No necesitas ningún bucle para que te calcule el siguiente número, en el query ya le dices que te de el máximo, solo le sumas uno y ya esta...¿no?...
A ver si hay suerte!
Respuesta
Es algo raro, ¿de qué tipo es numero? ¿Cuántos caracteres tiene? Lo digo por si solo admite un carácter ese campo cuando lo declaraste en la base de datos, porque la impresión es esa que solamente llega a 9.
Si es por eso bastaría con dar 2 o 3 caracteres y así no daría problema, por el resto el código esta bien así que pienso que es un error de la base de datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas