Foros del Web » Programando para Internet » PHP »

Números de pedido diferentes

Estas en el tema de Números de pedido diferentes en el foro de PHP en Foros del Web. Hola. Necesitaría un pequeño script para aplicar en un tpv virtual que hiciera que cada vez que se realizara un pedido diferente, el número de ...
  #1 (permalink)  
Antiguo 14/05/2004, 12:39
 
Fecha de Ingreso: julio-2003
Mensajes: 124
Antigüedad: 14 años, 4 meses
Puntos: 0
Números de pedido diferentes

Hola.

Necesitaría un pequeño script para aplicar en un tpv virtual que hiciera que cada vez que se realizara un pedido diferente, el número de este también fuera diferente.

Esto se debería de aplicar en un formulario, en un campo oculto

<input type="Hidden" name="Ds_Merchant_Order" size="12" value="0000123">

Lo que tendría que variar siempre es el número del value.


No sé, espero haberme explicado
  #2 (permalink)  
Antiguo 14/05/2004, 12:56
Avatar de mautik  
Fecha de Ingreso: mayo-2004
Mensajes: 149
Antigüedad: 13 años, 7 meses
Puntos: 0
podrias hacer algo asi:

$cart_order_id = date("ymd-His-").rand(1000,9999); // crea un numero aleatorio

claro que yo no lo pondria dentro del formulario, sino como una variable o como una session (por seguridad)

y supongo que despues tendras que verificar si esa orden ya existe (para que no se repita)
__________________
123...probando...probando...123
  #3 (permalink)  
Antiguo 14/05/2004, 13:12
 
Fecha de Ingreso: julio-2003
Mensajes: 124
Antigüedad: 14 años, 4 meses
Puntos: 0
Necesitaría que estuviera dentro del formulario, y más que aleatorio que sumara de 1 en 1.

No obstante, Gracias
  #4 (permalink)  
Antiguo 15/05/2004, 07:12
 
Fecha de Ingreso: julio-2003
Mensajes: 124
Antigüedad: 14 años, 4 meses
Puntos: 0
Por favor, es urgente.

Alguien me puede ayudar?
  #5 (permalink)  
Antiguo 15/05/2004, 10:53
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
yo usaba una tabla donde tenía todos los parámetros incrementables... números de pedido, facturas, notas etc.. simplemente inicializa el registro de números de pedido en 0001 y cuando hagas un pedido toma de ahi el número e incrementa el que queda en la base de datos, para que la siguiente persona que haga un pedido lo haga con el número correcto... saludos
  #6 (permalink)  
Antiguo 15/05/2004, 11:49
 
Fecha de Ingreso: julio-2003
Mensajes: 124
Antigüedad: 14 años, 4 meses
Puntos: 0
Me he estado informando un poco sobre el tema.

Parece que lo que tengo que hacer es crear una base de datos (eso esta claro) que genere un número (+1) cada vez que se realiza un pedido, osease llamar a la base de datos desde la web.

El problema de todo esto es que no tengo ni idea, las únicas bases de datos que he creado han sido de programas prediseñados, oscommerce, phpbb2,...

Así que, o me dais algunas pistas que me guien, o me decís cuanto cobráis por este trabajillo. Tener en cuenta que somos una sociedad no lucrativa
  #7 (permalink)  
Antiguo 15/05/2004, 12:24
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Dos maneras: muchas bases de datos tienen una opcion para incrementar un valor numérico en 1 (en mysql se llama auto_increment), cada vez que un usuario crease un pedido nuevo y lo metiese en la base de datos se le añade un número nuevo correlativo al anterior, si lo que pretendes es que ese número te aparezca en la web antes de meter los datos lo que puedes hacer es mirar el mayor número de ese campo y sumarle uno.

La otra manera sería hacerlo tú directamente, es decir: tienes el campo codigo_pedido de tipo numérico, no? pues lees el mayor número luego le sumas uno le asignas el resultado al nuevo pedido y luego guardas este número junto con el resto de los datos y así sucesivamente.

En el caso del campo auto_increment si borras un pedido, por ejemplo el 6, continúa añadiendo nuevos pedidos por el final (si ibas en el 45 pues 46,47...)

En el caso "manual" puedes hacer un script que compruebe si falta algún número y si falta asignárselo al pedido nuevo, así si borras el pedido 6 y vas en el 45 puedes crear un nuevo pedido 6 (como lo borraste no existe en la base de datos)

y asi.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #8 (permalink)  
Antiguo 15/05/2004, 23:15
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
te recomiendo que tu controles ese número, la propiedad autoincrement, considero que es mas útil para mantener referencias internas entre tablas, no para asignarle números o códigos al usuario...

saludos
  #9 (permalink)  
Antiguo 16/05/2004, 09:55
 
Fecha de Ingreso: julio-2003
Mensajes: 124
Antigüedad: 14 años, 4 meses
Puntos: 0
Bueno,

He creado la base de datos, he puesto lo de auto_increment, no sé muy bien que debo poner en los campos: Campo Tipo
Longitud/Valores* Atributos Nulo, etc.

También he creado la conexión a la base de datos desde la web.

Ahora creo que necesitaría el código php para reflejar en el input el número de pedido.

Poco a Poco
  #10 (permalink)  
Antiguo 16/05/2004, 12:26
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Como bien dice Sims82 quizás la solución del campo auto_incremente no sea la mejor pero si no tienes mucha idea de sql quizás sea la más sencilla ya que no tienes que preocuparte de la correlatividad entre los número de dicho campo...

El tipo de campo podría ser perfectamente int (integer: numero entero, sin decimales, si no especificas una longitud por defecto es de 9 dígitos...), si lo vas a usar para relacionar esa tabla con otras es recomendable que sea la clave primaria de la tabla, y debido a eso no podrá ser nulo (no podrás dejar el campo en blanco), en atributos quizás no sea necesario poner nada...

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #11 (permalink)  
Antiguo 17/05/2004, 09:43
 
Fecha de Ingreso: julio-2003
Mensajes: 124
Antigüedad: 14 años, 4 meses
Puntos: 0
Bueno amigos,

Muchas gracias por vuestros comentarios y ayuda, pero esto se escapa a mis conocimientos, lo dejo como tarea pendiente con más tranquilidad cuando tenga algo de tiempo.

Al final la solución (chapucilla) que he aplicado es:
<?
$id = rand(00000002,99999999);
?>
<input type="Hidden" name="Ds_Merchant_Order" size="12" value="<? echo $id; ?>">

El gran problema es que puede existir la posibilidad de que se repita la orden de pedido, aunque las probabilidades como veréis no son fáciles.

Gracias y saludos.
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 14:53.