Ver Mensaje Individual
  #7 (permalink)  
Antiguo 22/02/2006, 11:28
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para todo ese "juego" que haces con los ceros a la izquierda tienes la función:

str_pad()
http://www.php.net/str_pad

No sé como gestionas (la estructura) de tu tabla de los "tickets" .. pero si usas (como deberías) un campo tipo "ID" y autonumérico .. ahí ya tendrías tu "número correlativo".

Se trata de que cuando hagas tu "INSERT" a tu BBDD generando ese registro de "ticket" .. en el mismo proceso obtienes tu "ID" último generado (no con "MAX()" que no es seguro) sino con:

mysql_insert_id()
http://www.php.net/mysql_insert_id

O su equivalente en SQL (LAST_INSERT_ID())

Y en el mismo proceso haces un "UPDATE" a ese registro para generar tu "código" de tu n° de ticket:

UPDATE tabla SET ticketnumber='$ticketnumber' WHERE id='$id'

Donde "$id" lo habras sacado por la función mysql_insert_id() y el "$ticketnumbre" es todo esa lógica que quieres aplicar (que no comparto .. pero bueno allá los requisitos de cada aplicación ... y de quien las diseña).

De hecho todo esto se debería hacer de una en SQL. Sería algo tipo: (ojo, no es correcto .. revisa la documentación de Mysql):

UPDATE tabla SET ticketnumber=CONCAT(CURDATE(),campo_numero_cotizac ion,funcion_tipo_str_pad_de_PHP(LAST_INSERT_ID())) WHERE id=LAST_INSERT_ID()

(no sé si con un INSERT directo saldría . .habría que probarlo)

Revisa la documentación de Mysql sobre su SQL y mira las funciones de tratamiento de cadenas:
http://dev.mysql.com/doc/refman/5.0/...functions.html

Un saludo,