Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Photoshop, Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky
Ver más- 13,065 Miembros
- 9,531 Temas
- 3,449 Seguidores
Seleccionar cantidad y luego insertar multiples datos
Primero que me aparesca una pagina de donde yo escoja la cantidad de datos ejemplo tengo que llenar una orden de compra los datos de la tabla serian "id" int de tipo auto increment luego el "nombre" varchar 30 y la "cantidad" varchar 40 pero llo que yo no quiero hacer es llenar uno por uno si no hacer una pagina previa o un con un menu decir el numero de registros que va a llevar la orden como si yo selecciono 5 que me aparescvan esos sinco formularios y que luego yo los pueda insertar al mismo tiempo en la tabla les agradesco si me ueden colaborar
- 0Calificación
- 1Seguidores
- 244Visitas
- 0Favoritos
Global
Argentina
Chile
Colombia
España
México
Perú
Uruguay
Venezuela
22 respuestas
es una boludes pero si no sabes php ni mysql pierdo mi tiempo.....
sin embargo.
lo q tenes q hacer es un formulario q envie cuantos formularios para insertar datos queres
despues en el php de la siguiente pagina obtenes ese valor y haces un for() que se repita esa cantidad de veces, el mismo tiene que tener el formulario que introduce los datos en la base
y finalmente en el ultimo php tenes q recibir los datos, cuantos formularios del mismo envias y toda la info de cada formulario
y cuando todo te ande metele validaciones para evitar errores al guardar en la tabla
cualquer cosa pregunta
$j=$_POST['numero'];
for($i=0;$i<=$j;$i++)
{
$insertar="insert into tabla (los campos de la tabla) values('{$campo}','{$campo2}')";
$exe=mysql_query($insertar,$conexion);
}
Bueno hay tenes una guia adapatalo a tus necesitades
a medio le entiendo pero si podeis ayudar con un ejemplito yo no soy muy dado en php pero estoy aprendiendo y se me dificulta
PrimerFormulario.php:
<form method="post" action="formularios.php">Cantidad de Formularios:
<input type="text" name="cantidad">
<input type="submit" value="Enviar">
</form>
formularios.php
<form method="post" action="procesar.php"><?php
$cantidad=$_POST['cantidad'];
for($i=1;$i<($cantidad+1);$i++){
echo '<div class="fomulario">
<input type="text" name="nombre_'.$i.'">
<input type="text" name="descripcion_'.$i.'">
</div>';
}
?>
<input type="hidden" value="<?php echo $cantidad; ?>" name="cantidad">
<input type="submit" value="Enviar">
</form>
procesar.php:
<?phpinclude 'configuracionMySql.php';
$cantidad=$_POST['cantidad'];
for($i=1;$i<($cantidad+1);$i++)
{
$nombre=$_POST['nombre_'.$i];
$descripcion=$_POST['descripcion_'.$i];
$insertar="insert into tabla ('Nombre','Descripcion') values('{$nombre}','{$descripcion}')";
$exe=mysql_query($insertar,$conexion);
}
echo 'listo chabon!!!!';
?>
no probe el codigo es todo a ojo
Cuando te refieres a:
include 'configuracionMySql.php'; ahi es donde configuro lo de la base de datos el usuario y la contraseña?
Y a como lo miro sos un monstruo a esto le haces guevo
<?php
$basedatos = "basededatos";
$server="localhost";
$dbpass="contrasena";
$dbuser="root";
$cantidad=$_POST['cantidad'];
for($i=1;$i<($cantidad+1);$i++)
{
$nombre=$_POST['nombre_'.$i];
$descripcion=$_POST['descripcion_'.$i];
$insertar="insert into tabla ('Nombre','Descripcion') values('{$nombre}','{$descripcion}')";
$exe=mysql_query($insertar,$conexion);
}
echo 'listo chabon!!!!';
?>
lo deje asi pero no me inserta y me manda estos warning:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:AppServwwwinjeprocesar.php on line 12
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:AppServwwwinjeprocesar.php on line 12
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:AppServwwwinjeprocesar.php on line 12
listo chabon!!!!
No estas conectandolo bien a la base de datos..
tenes que usar mysql_connect y mysql_select_db
ya no me manda los warning pero no me inserta en la tabla:
<?php
$basedatos = "basededatos";
$server="localhost";
$dbpass="contrasena";
$dbuser="root";
$conexion = @mysql_connect($server,$dbuser,$dbpass);
$cantidad=$_POST['cantidad'];
for($i=1;$i<($cantidad+1);$i++)
{
$nombre=$_POST['nombre_'.$i];
$descripcion=$_POST['descripcion_'.$i];
mysql_select_db($basedatos, $conexion);
$insertar="insert into tabla ('Nombre','Descripcion') values('".nombre."','".$descripcion."')";
$exe=mysql_query($insertar,$conexion);
}
echo 'listo chabon!!!!';
?>
fijate q exista la tabla por ejemplo la tabla en la que este script introduce los datos se llama "tabla" y tiene los campos Nombre y Descripcion
para tu pagina tendrias q adaptarlo segun la estructura de tu tabla
ah y la variable nombre le falta el $
asi deberia quedar esa linea:
$insertar="insert into tabla ('Nombre','Descripcion') values('".$nombre."','".$descripcion."')";uu otra cosa
no es necesario que pongas esto dentro del for():
mysql_select_db($basedatos, $conexion);definilo arriba nomas.....
<?php//aqui deberia comenzar el archivo configuracionMySql.php
$basedatos = "basededatos";
$server="localhost";
$dbpass="contrasena";
$dbuser="root";
$conexion = @mysql_connect($server,$dbuser,$dbpass);
mysql_select_db($basedatos, $conexion);
//y aqui deberia terminar
$cantidad=$_POST['cantidad'];
for($i=1;$i<($cantidad+1);$i++)
{
$nombre=$_POST['nombre_'.$i];
$descripcion=$_POST['descripcion_'.$i];
$insertar="insert into tabla ('Nombre','Descripcion') values('".$nombre."','".$descripcion."')";
$exe=mysql_query($insertar,$conexion);
}
echo 'listo chabon!!!!';
?>
PD:Tengo que leer todo antes de comentar
yo creo que no esta captando bien el valor de cantidad porque en

;
inicio.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<div align="center"><form method="post" action="formularios.php">
Cantidad de Formularios:
<input type="text" name="cantidad">
<input type="submit" value="Enviar">
</form></div>
</body>
</html>
va bien y en :
formularios.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<div align="center"><form method="post" action="procesar.php">
<?php
$cantidad=$_POST['cantidad'];
for($i=1;$i<($cantidad+1);$i++){
echo '<div class="fomulario">
<input type="text" name="nombre_'.$i.'">
<input type="text" name="descripcion_'.$i.'">
</div>';
}
?>
<input type="hidden" value="<?php echo $cantidad; ?>" name="cantidad">
<input type="submit" value="Enviar">
</form></div>
</body>
</html>
el problema esta en este formulario o en este a y agrege un campo a la tabla "tabla " que seria el id
procesar.php
<?php
$basedatos = "basededatos";
$server="localhost";
$dbpass="contrasena";
$dbuser="root";
$conexion = @mysql_connect($server,$dbuser,$dbpass);
mysql_select_db($basedatos, $conexion);
$cantidad = utf8_decode($_POST['cantidad']);
for($i=1;$i<($cantidad+1);$i++)
{
$nombre = utf8_decode($_POST['nombre_'.$i]);
$descripcion = utf8_decode($_POST['descripcion_'.$i]);
$insertar=("insert into tabla ('id','nombre','descripcion') values (null,'".$nombre."','".$descripcion."')"
$exe=mysql_query($insertar,$conexion);
}
echo 'listo chabon!!!!';
?>
si os poden ayudar
esta linea esta mal(aqui la pongo corregida):
$insertar="insert into tabla ('Nombre','Descripcion') values('$nombre','$descripcion')";y la funcion utf8_decode no la veo necesaria..... quiza eso te esta causando problemas.....
otro detalle en taringa pone[*code][/*code] sin asteriscos para que se coloree los codigos
si vas a agregar el campo id tenes que agregar el campo en el formulario y despues en la consulta tmb....
buscate unos tutoriales para q veas ejemplos funcionando
despues cuando funcione todo busca tutoriales de validacion de formularios
ya cree la base de datos con la tabla "tabla" y con los campos id int 3 autoincrement, nombre varchar 20, y descripcion varchar 80 pero no me guarda
Tene en cuenta que las bases de datos en servidores unix son sensibles a mayusculas y minusculas( no es lo mismo ·"nombre" que "Nombre"
tambien ya lo hice todo en minuscula sin ñ y sin acentos pero igual no me guarda
a eso me referia que no lo guardes con minuscula
porque cuando insertas los datos esta con mayuscula la primer letra