Foros del Web » Programando para Internet » PHP »

Recorrer un formulario con foreach y almacenarlos con la misma instruccion

Estas en el tema de Recorrer un formulario con foreach y almacenarlos con la misma instruccion en el foro de PHP en Foros del Web. Buenas noches, mi duda es la siguiente: yo tengo un formulario de aproximadamente 13 campos, yo se recibir estos campos en un archivo php y ...
  #1 (permalink)  
Antiguo 07/03/2010, 19:51
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 3 meses
Puntos: 0
Recorrer un formulario con foreach y almacenarlos con la misma instruccion

Buenas noches, mi duda es la siguiente: yo tengo un formulario de aproximadamente 13 campos, yo se recibir estos campos en un archivo php y almacenarlos en una base de datos, pero la forma que conozco es irlos trayendo uno a uno y almacenandolos en una variable. Ejemplo:

$var1 = $_post['campo1'];
$var2 = $_post['campo2'];
$var3 = $_post['campo3'];
.....

esto resulta un proceso tedioso como comprenderan, mas sin embargo he leido que con la instruccion foreach puedes traerlos de una sola vez, mi pregunta es como hago para traerlos con esta instruccion y luego almacenarlos en una base de datos usando la misma instruccion. Espero puedan ayudarme gracias y saludos.
  #2 (permalink)  
Antiguo 07/03/2010, 19:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

en dicho caso necesitas usar name dinámicos... osea, en notación de array
Código HTML:
<input name="foo[0]"/>
<input name="foo[1]"/>
<input name="foo[2]"/> 
y por supuesto, al procesarlos con PHP ya es un cómodo arreglo... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/03/2010, 20:14
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

buenas noches, gracias por responder tan rapido de no ser mucha molestia podrias explicarme eso de forma mas detallada porque no entiendo bien a que te refieres. Gracias
  #4 (permalink)  
Antiguo 07/03/2010, 20:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

si vamos, tu usarías
Código HTML:
<input name="campo1" valor="1"/>
<input name="campo2" valor="2"/>
<input name="campo3" valor="3"/> 
en dicho caso, sería tedioso como comentas iterar dichos valores...
Código PHP:
for ($i 1$i <= 3; ++$i)
{
  echo 
$_POST['campo' $i];

pero si usas la notación de array, pues es mas simple

Código HTML:
<input name="campo[1]" valor="1"/>
<input name="campo[2]" valor="2"/>
<input name="campo[3]" valor="3"/> 
y en el proceso usamos un ciclo
Código PHP:
foreach ($_POST['campo'] as $i => $value)
{
  echo 
$value;

no se que mas detalles necesites... pero me parece muy sencillo ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 08/03/2010, 06:28
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

ok entendi esa parte pero una pregunta mas como seria para almacenar los datos que me traigo desde el foreach en una base de datos mysql, osea normalmente la instruccion es algo asi:

$query = "insert into nombre_table values ('$valor1','$valor2',...,'$valorn'); esta instruccion es igual de tediosa porque tendria que ir metiendo valor por valor, no hay forma de almacenarlos desde un foreach o alguna instruccion similar para que sea mas automatico y no tener que ir metiendo valor por valor?
  #6 (permalink)  
Antiguo 08/03/2010, 06:35
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

Código PHP:

foreach ( $_POST as $key => $value) { //Iniciamos el foreach. KEY = name del input, $value=valor
echo "Para el campo $key tenemos $value<br>";

Esto deberia listarte todos los inputs del formulario (los q mandes por post). Para cualquier otra cosa, solo debes tratar los datos en vez de hacer el echo! :)

Respecto a lo otro.. tienes en http://es.php.net/mysql_fetch_assoc en el primer comentario, una funcion que le pasas una tabla, y un array, y te lo inserta dentro.. quizás hace lo q quieres :)
  #7 (permalink)  
Antiguo 08/03/2010, 06:53
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

Cita:
Iniciado por shacal_05 Ver Mensaje
ok entendi esa parte pero una pregunta mas como seria para almacenar los datos que me traigo desde el foreach en una base de datos mysql, osea normalmente la instruccion es algo asi:

$query = "insert into nombre_table values ('$valor1','$valor2',...,'$valorn'); esta instruccion es igual de tediosa porque tendria que ir metiendo valor por valor, no hay forma de almacenarlos desde un foreach o alguna instruccion similar para que sea mas automatico y no tener que ir metiendo valor por valor?
Código PHP:
foreach ($_POST['campo'] as $i => $value

  array 
// en el array van los datos de un campo  
}  

//luego mediante un for puedes cargar los datos que quieras que estan en el array lo usuaría para tener a disposición cualquier dato desde una posicion y puedes cargas datos especificos en varios arrays osea hay mas posibilidades.

for ($i=0;i<c;i++) //c un contador que te haces y lo aumentas en cada for each
{
//instrucción sql con los datos que necesites

  #8 (permalink)  
Antiguo 08/03/2010, 07:03
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

ok entiendo mas o menos la idea pero soy algo nuevo con esta forma de hacer las cosas y la instruccion no la domino bien, podrian explicarme cual es esa instruccion sql con los datos que necesito. Gracias
  #9 (permalink)  
Antiguo 08/03/2010, 09:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

Cita:
Iniciado por shacal_05 Ver Mensaje
ok entiendo mas o menos la idea pero soy algo nuevo con esta forma de hacer las cosas y la instruccion no la domino bien, podrian explicarme cual es esa instruccion sql con los datos que necesito. Gracias
la expresión SQL con los datos que necesitas??

osea, ¿que debemos adivinar o inventar eso??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 08/03/2010, 10:45
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

buenas, ve amigo me refiero a lo siguiente: ya entiendo que para traer los valores de un formulario uso:

Código PHP:
Ver original
  1. foreach ($_POST['campo'] as $i => $valor)
  2. {
  3. }
ok una vez obtenidos esos valores cual seria la sintaxis para almacenarlos en una base de datos, osea como seria el inser into nombre_tabla....

Esa es mi pregunta, porque no es lo mismo eso que pregunto a ya tener todos los valores en variables individuales como por ejemplo

$_POST['nombre'];
$_POST['cedula'];
$_POST['edad'];
....

Espero puedan ayudarme. Gracias
  #11 (permalink)  
Antiguo 08/03/2010, 16:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

Cita:
Iniciado por shacal_05 Ver Mensaje
Por favor alguien que me ayude con esto es super urgente
mmmm...

es que en cierto punto debes utilizar tu propia creatividad...

si no puedes nombrar los campos, ¿como piensas hacer el INSERT??
Cita:
INSERT INTO tabla(campos a nombrar)
osea... lo mas fácil es concatenar el arreglo recibido y separarlo por comas, así de simple... pero ya he dicho, si ni siquiera puedes nombrar los campos ¿como planeas hacerlo??
Código PHP:
$str join(', '$_POST['campos']); // a, b, c 
PDTA: y si es tan urgente, pues vamos... que hay un foro de ofertas de empleo para que alguien lo haga por ti... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 09/03/2010, 19:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 31
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

Hola, Todas las Soluciones que te han dado los amigos en los temas de arriba te funcionan para lo que tu quieres.

solo es de buscarle patas a la Tortuga porque si las tiene y 4

y aquí te dejo otra:
Supongamos que usas esto:
Código HTML:
<input name="campo[1]" valor="1"/>
<input name="campo[2]" valor="2"/>
<input name="campo[3]" valor="3"/> 
en el php code seria algo así. no lo he probado pero seguro que funciona...
Código PHP:
foreach($_POST as $mp){
$query  sprintf("INSERT INTO MyTabla (`campo1`,`campo2`,`campo3`) VALUES ('%s','%s', '%s')",$mp[1], $mp[2], $mp[3]);
// o usar: ,mysql_real_escape_string($mp[1]), etc,etc,mysql_real_escape_string($mp[13]));
}echo $query//= A>>> INSERT INTO MyTabla (`campo1`,`campo2`,`campo3`) VALUES ('Contenido 1','Contenido 2', 'Contenido 3')
$result mysql_query($query); 
en este caso se estaría usando sprintf

y aquí tienes la web de php sprintf
http://us.php.net/manual/en/function.sprintf.php


-
__________________
╬-----╬
║☺₧☻║
╬-----╬
  #13 (permalink)  
Antiguo 10/03/2010, 06:56
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Recorrer un formulario con foreach y almacenarlos con la misma instruccion

Buenos dias, gracias por responderme thezzin voy a probar lo que me estas diciendo y confirmo cualquier cosa.

Etiquetas: foreach, instruccion, recorrer, formulario
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 02:49.