Foros del Web » Programando para Internet » PHP »

numero consecutivo

Estas en el tema de numero consecutivo en el foro de PHP en Foros del Web. hola a todos necesito de su ayuda Tengo un formulario con fecha actividad documentación Ticket cliente etc cuando todos los datos son diligenciados necesito que ...
  #1 (permalink)  
Antiguo 24/05/2012, 10:41
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 8 meses
Puntos: 2
numero consecutivo

hola a todos
necesito de su ayuda
Tengo un formulario con
fecha
actividad
documentación
Ticket
cliente
etc

cuando todos los datos son diligenciados necesito que en el campo ticket si el usuario no lo escribe que se asigne un numero consecutivo de 6 dígitos y al darle clic en el botón enviar muestre todos los datos para así saber que numero consecutivo se asigno en ese ticket "ese numero de ticket no se puede repetir"

espero me puedan ayudar gracias
  #2 (permalink)  
Antiguo 24/05/2012, 10:44
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: numero consecutivo

¿En donde deseas almacenar ese ticket? ¿en una base de datos? ¿en un archivo de texto?

Debes almacenarlo para saber en que numero va... de acuerdo a tu respuesta podremos ayudarte de una mejor forma.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 24/05/2012, 10:49
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: numero consecutivo

Cita:
Iniciado por jotaincubus Ver Mensaje
¿En donde deseas almacenar ese ticket? ¿en una base de datos? ¿en un archivo de texto?

Debes almacenarlo para saber en que numero va... de acuerdo a tu respuesta podremos ayudarte de una mejor forma.
gracias por tu respuesta

si todos estos datos los almaceno en una base de datos mysql
  #4 (permalink)  
Antiguo 24/05/2012, 10:57
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: numero consecutivo

Si en tu tabla indicas el id como campo autoincremento, al insertar el ticket mysql te dará el id asignado. No recuerdo si te lo puede dar a 6 dígitos, en caso de que no, lo podrías rellenar con ceros a la izquierda con strpad()
  #5 (permalink)  
Antiguo 24/05/2012, 10:58
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: numero consecutivo

Bueno hay varias posibilidades para abordar tu problema.

1. puedes crear una columna "ticket" en la tabla (int(6) - unsigned - zerofill - unique - auto_increment) asi no se repetira y autoincrementara desde 000001 hasta 999999

2. crear una tabla donde menejes los tickets y hacer una relacion desde el id de la tabla que contiene los datos hasta la tabla de los tickets id_ticket -> id_datos

EDIT: El unico inconveniente es que "PARECE QUE EL USUARIO PUEDE INGRESAR EL TICKET" cosa que no recomiendo y se lo dejes a MySql para evitar errores en la tabla y el consecutivo...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #6 (permalink)  
Antiguo 24/05/2012, 11:03
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: numero consecutivo

Cita:
Iniciado por jotaincubus Ver Mensaje
Bueno hay varias posibilidades para abordar tu problema.

1. puedes crear una columna "ticket" en la tabla (int(6) - unsigned - zerofill - unique - auto_increment) asi no se repetira y autoincrementara desde 000001 hasta 999999

2. crear una tabla donde menejes los tickets y hacer una relacion desde el id de la tabla que contiene los datos hasta la tabla de los tickets id_ticket -> id_datos

EDIT: El unico inconveniente es que "PARECE QUE EL USUARIO PUEDE INGRESAR EL TICKET" cosa que no recomiendo y se lo dejes a MySql para evitar errores en la tabla y el consecutivo...
muchas gracias por tu pronta respuesta voy a hacer la opcion 1
una duda peuqeña para que es usado unsigned - zerofill??
:) si tengo alguna duda te estare molestando nuevamente
  #7 (permalink)  
Antiguo 24/05/2012, 12:17
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: numero consecutivo

UNSIGNED = Se utiliza para los campos INTEGER y quiere decir que no lleven signo negativo

ZEROFILL = Se utiliza para los campo INTEGER y quiere decir que rellene con ceros hasta completar la longitud de caracteres de campo, si tu no lo colocas el campo auto incrementable empezaria simplemente con 1 mientras que con ZEROFILL apareceria 000001
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 24/05/2012, 14:09
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: numero consecutivo

Cita:
Iniciado por jotaincubus Ver Mensaje
UNSIGNED = Se utiliza para los campos INTEGER y quiere decir que no lleven signo negativo

ZEROFILL = Se utiliza para los campo INTEGER y quiere decir que rellene con ceros hasta completar la longitud de caracteres de campo, si tu no lo colocas el campo auto incrementable empezaria simplemente con 1 mientras que con ZEROFILL apareceria 000001
Muchas gracias por tu ayuda ;)
que pena molestarte lo que pasa es que me sale este error no se por que
problemas en el insertDuplicate entry '112036' for key 'Ticket'
  #9 (permalink)  
Antiguo 24/05/2012, 14:14
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: numero consecutivo

El error es claro:

Tratas de insertar un ticket que ya esta en la base de datos... por eso colocamos UNIQUE para que no puedan repetir el ticket... es mas si lees bien, el ticket deberia AUTO INCREMENTARSE y no tener la posibilidad de ingresarlo desde el formulario.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 24/05/2012, 14:18
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: numero consecutivo

Cita:
Iniciado por jotaincubus Ver Mensaje
El error es claro:

Tratas de insertar un ticket que ya esta en la base de datos... por eso colocamos UNIQUE para que no puedan repetir el ticket... es mas si lees bien, el ticket deberia AUTO INCREMENTARSE y no tener la posibilidad de ingresarlo desde el formulario.
Código PHP:
<?php
include("conexion.php");
$Link=conexion();

$Fecha_inicio=$_POST['Fecha_i'];
$Hora_inicio=$_POST['Hora_i'];
$Cliente=$_POST['Olimpica'];
$Solicitud=$_POST['solicitud'];
$Documentacion=$_POST['documentacion'];
$Actividad=$_POST['Actividad'];
$Ticket=$_POST['Ticket'];
$Fecha_fin=$_POST['Fecha_f'];
$Hora_fin=$_POST['Hora_f'];
$Ticket=$_POST['Ticket'];
echo 
$Ticket;
$Ticket_une=$_POST['Ticket_une'];
echo 
$Ticket_une;


$sql=mysql_query("select Ticket from usuarios where Ticket='$Ticket'");
echo 
$Ticket_une;
$num=mysql_num_rows($sql);


if (
$num==0){
    
$mysql=mysql_query("INSERT INTO formulario (Fecha_inicio,Hora_inicio,Cliente,Solicitud,Documentacion,Actividad,Fecha_fin,Hora_fin,Ticket_une) 
VALUES ('$Fecha_inicio','$Hora_inicio','$Cliente','$Solicitud','$Documentacion','$Actividad','$Fecha_fin','$Hora_fin','$Ticket_une')"

or die (
"problemas en el insert".mysql_error());
echo 
"Se guardo satisfactoriamente el Ticket con la siguiente informacion";
echo 
"<br>";
echo 
$Fecha_inicio;
echo 
"<br>";
echo 
$Hora_inicio;
echo 
"<br>";
echo 
$Cliente;
echo 
"<br>";
echo 
$Solicitud;
echo 
"<br>";
echo 
$Documentacion;
echo 
"<br>";
echo 
$Actividad;
echo 
"<br>";
echo 
$Ticket;
echo 
"<br>";
echo 
$Fecha_fin;
echo 
"<br>";
echo 
$Hora_fin;
echo 
"<br>";
echo 
$Ticket_une;
echo 
"<br>";
}
else
{
$mysql=mysql_query("update formulario set Fecha_inicio='$Fecha_inicio',Hora_inicio='$Hora_inicio',
Cliente='$Cliente',Solicitud='$Solicitud',Documentacion='$Documentacion',Actividad='$Actividad',
Ticket='$Ticket',Fecha_fin='$Fecha_fin',Hora_fin='$Hora_fin',Ticket_une='$Ticket_une'
where Ticket='$Ticket'"
) or die ("problemas en el update".mysql_error());
echo 
"Se guardo satisfactoriamente el Ticket con la siguiente informacion";

echo 
$Fecha_inicio;
echo 
$Hora_inicio;
echo 
$Cliente;
echo 
$Solicitud;
echo 
$Documentacion;
echo 
$Actividad;
echo 
$Ticket;
echo 
$Fecha_fin;
echo 
$Hora_fin;
echo 
$Ticket_une;
}

mysql_close($Link);

?>
Este es es mi código para guardar los datos en la base de datos no se que estoy hacindo mal
  #11 (permalink)  
Antiguo 24/05/2012, 14:24
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: numero consecutivo

La verdad no se entiende... vos decis que el ticket es UNICO y por ende no puede haber otro registro con el mismo numero de ticket... teniendo eso en cuenta vualvo y repito"... ES MEJOR QUE EL USUARIO NO PUEDA INGRESAR EL TICKET Y PERMITIR QUE EL AUTO INCREMENTABLE DE MYSQL LO MANEJE"

Ahora bien si el usuario es el que debe ingresar el ticket entonces el planteamiento del primer problema variaria y lo que te planteo no serviria.

Por favor explica en si que es lo que hace el programa para poder ayudarte.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #12 (permalink)  
Antiguo 24/05/2012, 14:29
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: numero consecutivo

Cita:
Iniciado por jotaincubus Ver Mensaje
La verdad no se entiende... vos decis que el ticket es UNICO y por ende no puede haber otro registro con el mismo numero de ticket... teniendo eso en cuenta vualvo y repito"... ES MEJOR QUE EL USUARIO NO PUEDA INGRESAR EL TICKET Y PERMITIR QUE EL AUTO INCREMENTABLE DE MYSQL LO MANEJE"

Ahora bien si el usuario es el que debe ingresar el ticket entonces el planteamiento del primer problema variaria y lo que te planteo no serviria.

Por favor explica en si que es lo que hace el programa para poder ayudarte.
Ya los solucione jeje lo que pasa es que el ticket que se auto incrementa guarda como un dato otro ticket que si ingresa el usuario lo unico que necesito es que al final me muestre toda la informacion mas el ticket que se le asigno si me entiendes????
  #13 (permalink)  
Antiguo 24/05/2012, 14:32
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: numero consecutivo

ummm? sabes el significado del termino auto incrementable de mysql ? sabes para que se utiliza un auto incrementable ? sabes que pasa si insertas un registro y no le pasas nada a la columna auto incrementable ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #14 (permalink)  
Antiguo 24/05/2012, 14:37
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: numero consecutivo

Cita:
Iniciado por jotaincubus Ver Mensaje
ummm? sabes el significado del termino auto incrementable de mysql ? sabes para que se utiliza un auto incrementable ? sabes que pasa si insertas un registro y no le pasas nada a la columna auto incrementable ?


Lo tengo demasiado claro y la columna autoincrementable me esta guardando correctamente no hay ningun problema con la columna que me autoincrementa el ticket de 6 numeros lo uniko que necesito es q cuando yo imprima todos los datos ingresados me muestre el consecutivo que se puso
  #15 (permalink)  
Antiguo 24/05/2012, 14:46
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: numero consecutivo

Bueno, creo que no nos estamos comunicando bien....

Consecutivo es un numero que se aumentara en X cantidad cada vez que se ingrese un registro en la base de datos. ¿este consecutivo sera manejado por el usuario o sera manejado por el sistema?

ejemplo:
1. Lleno el formulario (sin ticket) -> el sistema asigna automaticamente un ticket (consecutivo)
2. Lleno el formulario (con ticket) -> el usuario llevara el control del consecutivo (esto implica que EL DEBE SABER EL TICKET ANTERIOR PARA INGRESAR EL NUEVO)

Cuanto utilizas un campo AUTO INCREMENT este se llena solito (esa es la finalidad) sin necesidad de enviarle NINGUN DATO EN EL INSERT ¿tu le estas enviando el ticket al campo auto increment?

Para obtener el ticket asignado seria con una conluta a la BD, trayendo el utlimo y sumandolo en 1 (ojo que solo es la logica)
"SELECT Ticket FROM tu_tabla ORDER BY Ticket DESC LIMIT 1"
$ticket = $resultado + 1;
echo su ticket es $ticket
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Última edición por jotaincubus; 24/05/2012 a las 14:54
  #16 (permalink)  
Antiguo 25/05/2012, 07:07
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: numero consecutivo

Cita:
Iniciado por jotaincubus Ver Mensaje
Bueno, creo que no nos estamos comunicando bien....

Consecutivo es un numero que se aumentara en X cantidad cada vez que se ingrese un registro en la base de datos. ¿este consecutivo sera manejado por el usuario o sera manejado por el sistema?

ejemplo:
1. Lleno el formulario (sin ticket) -> el sistema asigna automaticamente un ticket (consecutivo)
2. Lleno el formulario (con ticket) -> el usuario llevara el control del consecutivo (esto implica que EL DEBE SABER EL TICKET ANTERIOR PARA INGRESAR EL NUEVO)

Cuanto utilizas un campo AUTO INCREMENT este se llena solito (esa es la finalidad) sin necesidad de enviarle NINGUN DATO EN EL INSERT ¿tu le estas enviando el ticket al campo auto increment?

Para obtener el ticket asignado seria con una conluta a la BD, trayendo el utlimo y sumandolo en 1 (ojo que solo es la logica)
"SELECT Ticket FROM tu_tabla ORDER BY Ticket DESC LIMIT 1"
$ticket = $resultado + 1;
echo su ticket es $ticket

listo lo que necesitaba saber era eso como mostrar el ticket que se auto incrementaba Gracias por tu ayuda

Etiquetas: consecutivo, formulario, numero, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:21.