Foros del Web » Programando para Internet » PHP »

como hacer un inventario

Estas en el tema de como hacer un inventario en el foro de PHP en Foros del Web. he cambiado toda una aplicación de gestión a web, ( no es excesivamente complicada ) . el problema es que ahora debo hacer el inventario ...
  #1 (permalink)  
Antiguo 11/03/2003, 12:23
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 494
Antigüedad: 15 años, 3 meses
Puntos: 0
como hacer un inventario

he cambiado toda una aplicación de gestión a web, ( no es excesivamente complicada ) . el problema es que ahora debo hacer el inventario de articulos via web, y no se que sistema utilizar ni que tipo de campos.
El sistema tiene que ser parecido al que ahora realizan, o sea:
introducir codigo y cantidad
cómo introduzco los campos, lo que no puedo hacer es cada código y cantidad hacer una petición al sistema, seria interminable
creo que debo dejar introducir un ilimitado número de códigos y cantidades y después guardar y validar
alguna ayuda?
  #2 (permalink)  
Antiguo 11/03/2003, 12:30
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Si tienes que hacer múltiples inserts. Acuérdate de hacer un LOCK tables antes de empezar el bucle y un UNLOCK al final.

Código PHP:
<?
$bloquea 
mysql_query("LOCK TABLES tabla WRITE");
for (
$i=0$i<$total$i){
$entra mysql_query("INSERT INTO tabla (campos) VALUES ($valores)");
}
$bloquea mysql_query("UNLOCK TABLES");
?>
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 11/03/2003, 12:37
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 494
Antigüedad: 15 años, 3 meses
Puntos: 0
esto ya lo tenia claro esto, lo que no tengo claro que tipos de campo y que tipo de formulario utilizo,
no se si puedo encontrar un ejemplo en algun sitio
  #4 (permalink)  
Antiguo 11/03/2003, 12:43
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Los campos serán como mejor convengan.

Ejemplo:
INT para precios
VARCHAR(255) para textos relativamente cortos
BLOB para descripciones largas
TIMESTAMP / DATE / DATETIME para fechas
TINYINT(1) para sí/no (me gustan más que los SET)

El formulario puede contener una gran cantidad de campos (para evitar tener que irlo recargando) y puedes llamar a los campos:

id[0] : id
nombre[0] : nombre
precio[0] : precio
cantidad[0] : cantidad
...

id[1] : id
nombre[1] : nombre
precio[1] : precio
cantidad[1] : cantidad
...
id[n] : id
nombre[n] : nombre
precio[n] : precio
cantidad[n] : cantidad
...

Así tendrás un array por cada campo que contiene los valores de todos los registros ordenados, cosa que te facilitará el uso de for () para hacer los mysql_query que insertarán los campos a la BD.
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 11/03/2003, 12:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Los tipos de campo de tus tablas Mysql .. los puedes encontrar en www.mysql.com (si, el manual oficial de Msyql..)

http://www.mysql.com/doc/en/Column_types.html

Un saludo,
  #6 (permalink)  
Antiguo 12/03/2003, 11:00
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 494
Antigüedad: 15 años, 3 meses
Puntos: 0
referente a la base de datos no tengo ningun problema, todo ok , el problema es que no se que tipo de campos usar en pantalla debido al gran numero de códigos a entrar, el problema es que no se cuantos.
que tipo de campo uso en el form?
si utilizo por ejemplo una tabla con dos columnas, y en cada celda de cada fila pongo codigo y cantidad, por ejemplo. como hago para que a medida que vaya entrando codigos siempre hya una fila en blanco donde añadir?
  #7 (permalink)  
Antiguo 12/03/2003, 11:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si quieres "simular" lo que hace una aplicación de "escritorio" con respecto al tema de ingresar datos de un formulario añadiendose mas campos automáticamente .. deberias hacerlo en Javascript .. por lo menos para conseguir ese efecto.

En PHP .. lo normal que harias es tener (por ejemplo .. es una idea):

Un "popup" (o frame) donde tienes tu formulario tipico de:

codigo - noseque -unidades -descuento .etc - etc ..

estos <input> en un formulario <form ..> </form> .. y con su correspondiente boton "submit" (enviar) ..

Cuando envias un registro (esos campos) .. actualizas la ventana "padre" donde mostraras el total de entradas realizas y almacenadas (en versión PHP seria esa página donde harias la consulta a tu BD y muestras el listado del inventario ..) y si quieres .. continuas con ese "popup" o frame (ventana con el formulario) para ingresar mas datos ...

Date cuenta las limitaciones de un navegador y de los objetos de formulario .. Así q no pretendas maravillas con un navegador .. y en tal caso esas "maravillas" se hacen via Javascript ...

(esto mismo que comento del popup y todo esto se podría hacer en javascript .. )

Un saludo,
  #8 (permalink)  
Antiguo 12/03/2003, 11:42
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 494
Antigüedad: 15 años, 3 meses
Puntos: 0
me has dicho lo que no queria leer, precisamente queria evitar que cada registro se grabara en la DB, queria introducir una infinita lista dentro de una tabla y en cualquier momento con un boton grabarlo todo
y me vas a enviar al foro de js, y queria evitarlo ...
gracias por confirmar mis sospechas
  #9 (permalink)  
Antiguo 12/03/2003, 11:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues recuerda ..

Todo lo q se tenga que hacer antes de un "submit" lo has de gestionar el en cliente con Javascript o el lenguaje del lado del servidor que estimes oportulo ..

Un saludo, suerte en javascript
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 07:32.