Foros del Web » Programando para Internet » PHP »

php

Estas en el tema de php en el foro de PHP en Foros del Web. ola amigos del foro quien me puede ayudar ... resulta que tengo un formulario ..donde ingreso datos uno a uno ..¿ya ?..en eso no tengo ...
  #1 (permalink)  
Antiguo 28/09/2009, 14:07
 
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 6 meses
Puntos: 0
php

ola amigos del foro

quien me puede ayudar ...

resulta que tengo un formulario ..donde ingreso datos uno a uno ..¿ya ?..en eso no tengo problem...

pero ahora cree tipo carrito compra con un boton va agregando fila hacia abajo a medida que quiera el usuario ingresar mas productos al mismo formulario ...

el problema esta que cuando ingreso los datos me ingresa solo la primera fila a la base de datos
osea solo la primera fila un producto ...y los demas nada

eh estado probando con un ciclo en el INSERT pero no se en que parte tengo el problem .-..

en realidad ando pedido

$inset="INSERT INTO MAE_POS (ORIGEN, CLIENTE, Folio, DESPACHO)
VALUES ('$_POST[origen]','$_POST[cliente]','$_POST[folio]','$_POST[despacho]')";


$inset1=odbc_exec($db,$inset);
$inset1=0;
while( odbc_fetch_row( $agregar))
$inset1++;


echo "LOS DATOS FUERON INGRESADOS CORRECTAMENTE";
$result = odbc_exec($db,$inset);
if (!$result) {
exit("Error en la consulta");
}
}
odbc_close($db);
?>
  #2 (permalink)  
Antiguo 28/09/2009, 14:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: php

¿Como haces para insertarlos? Me refiero a que escribas todo el codigo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 28/09/2009, 14:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: php

al anterior se llama insert.php

este se llama agregar.php que va el form

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
var contador=6;
function agregar(){
var contenido=document.getElementById('div1').innerHTM L;
var contenidoutil=contenido.substring(0,contenido.inde xOf("<!-- marca -->"));
var contenidonoutil=contenido.substr(contenido.indexOf ("<!-- marca -->"));
var linea="<input type=\"text\" name=\"origen\" size=\"15\" name=\"origen"+(contador+1)+"\"> <input type=\"text\" name=\"cliente\" size=\"15\"name=\"cliente"+(contador+2)+"\"> <input type=\"text\" value=\"\" size=\"15\" name=\"folio"+(contador+3)+"\"> <select name=\"despacho" +(contador+4)+"\"> <option value=\"ods\">opcion1</opcion><option value=\"obc\">opcion2</opcion> <input type=\"text\"size=\"15\" name=\"textfield"+(contador+5)+"\"> <input type=\"text\"size=\"15\" name=\"textfield"+(contador+6)+"\"><br>";
document.getElementById('div1').innerHTML=contenid outil+linea+contenidonoutil;
contador=contador+6;
}
</script>

</head>
<body>
<table width="822" height="28" border="1">

<div id="div1"><form method="post" action="insert.php">
<input type="text" size="15" name="origen" >
<input type="text" size="15" name="cliente" >
<input type="text" size="15" name="folio" >
<select name="despacho"><option value="ods">opcion1</opcion><option value="obc">opcion2</opcion><option>opcion3</opcion><option>opcion4</opcion></select>
<input type="text" size="15" name="textfield5">
<input type="text" size="15" name="textfield6">



<br><!-- marca -->
<input type="button" name="Submit" value="agregar" onclick="agregar()">
<input type="submit" name="Submit2" value="Enviar">
</form></div>
</body>
</html>
  #4 (permalink)  
Antiguo 28/09/2009, 15:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 6 meses
Puntos: 0
ola nuevamente ..
quien me puede ayudar al tema ..

gracias por la ayuda

Dios!!! eres mi ídolo!!! acabo de ver la luz!!!

Muchas gracias echevemaster, me ha sido de gran ayuda tu aportación

Para insertar los pagos y que automaticamente se recargue la tabla donde aparecen los pagos anteriores, teneis idea de como hacerlo? algun ejemplo?

Última edición por GatorV; 29/09/2009 a las 08:26
  #5 (permalink)  
Antiguo 28/09/2009, 16:03
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: php

estas repitiendo el atributo name en los campos para empezar
name=\"origen\" size=\"15\" name=\"origen"+(contador+1)+"\"
lo otro si estas generando un arreglo entonces tienes que ingresarlo como tal ya sea con un for, que supongo haces.... digo por algo solo te esta tomando el ultimo o el primero...

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #6 (permalink)  
Antiguo 28/09/2009, 17:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: php

Ok, te sugiero que mejor trabajes con array. Es más conveniente a la hora de leer los campos y no te tienes que preocupar de añadir un codigo de conteo quedaría algo así. Te sugiero hacerlo con todos los demas tambien.

Código html:
Ver original
  1. name=\"origen[]\"
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 29/09/2009, 07:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: php

ola nuevamente amigos

probe de las dos formas pero no funciona cuado le pongo esto [ ] me arroja en la base datos la palabra array y no me ingresa los datos ..

y cmo me decia el amigo kaninox que tenia repetido el atributo name pero tampoco es ...

les pido ayuda nuevamente .... talvez no supe entender lo que me decian ...
porfa ...
  #8 (permalink)  
Antiguo 29/09/2009, 08:02
Avatar de sebasnob  
Fecha de Ingreso: enero-2008
Ubicación: Rosario
Mensajes: 27
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: php

En algun momento te ingresa al bucle while? Porq si no se me escapa nada la variable $agregar no la veo definida en ningun lado..
  #9 (permalink)  
Antiguo 29/09/2009, 08:04
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: php

haber vamos con manzanas :P

haz la siguiente prueba...

genera un formulario con un solo campo llamado nombre[] <----- Array

Código php:
Ver original
  1. <form name="envia" method="post">
  2. <?php
  3. for($i=1;$i<=20;$i++)
  4. {
  5. //generamos 20 campos nombre
  6. ?>
  7. <input type="text" name="nombre[]"><br />
  8. <?php
  9. }
  10. ?>
  11. <input type="submit" name="enviar" value="Envia">
  12. </form>

una ves envías, lo ingresamos

Código php:
Ver original
  1. <?php
  2. $nombre = $_POST[nombre];
  3. for($i=0;$i<count($nombre);$i++) {
  4.  
  5. mysql_query ("INSERT INTO tu_tabla"
  6.  ." (nombre)"
  7.  ." Values"
  8.  ." ('".$nombre[$i]."')") or die ("Error ".mysql_error());
  9. }
  10. ?>

ahora toca amoldarlo a tu codigo, espero se entienda, saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #10 (permalink)  
Antiguo 08/10/2009, 11:14
 
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: php

ola nuevamente kaninox ...
gracias a tu ejemplo lo pude impletar en mi cogido y funciono ..

ahora tengo otra consulta ..... referente a lo mismo

en la parte del FOR <count($nombre)> COMO podria incorporar otro campo que se llame APELLIDO aparte del que esta NOMBRE que esta en el ejemplo


TRATE DE HACERLO ASI PERO ME INGRESA MUCHOS CAMPOS EN BLANCO

$origen = $_POST[origen];
$cliente = $_POST[cliente];
for($i=0;$i<count($origen),($cliente);$i++)
{
$inset = "INSERT INTO MAE_POS (ORIGEN,CLIENTE)
VALUES ('$origen[$i]','$cliente[$i]')";

gracias
  #11 (permalink)  
Antiguo 08/10/2009, 11:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: php

Si el campo origen siempre va a tener la misma cantidad de cliente solo tienes que hacer un solo count.
Código PHP:
Ver original
  1. $origen = $_POST[origen];
  2. $cliente = $_POST[cliente];
  3. for($i=0;$i<count($origen);$i++){
  4. echo $origen[$i] . " " . $cliente[$i] . "<br />";
  5. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 08/10/2009, 14:58
 
Fecha de Ingreso: septiembre-2008
Mensajes: 56
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: php

ola amigos .....
muchas gracias por vuestra ayuda para este tema
con exito a resultado lo que necesitaba

aka en envio de lo que hice, para ayuda de alguien que este en mi problema ...
ojo !! que esto esta echo para una base de datos en access + php

<?php
$db = odbc_connect('db1','','');
if (!$db) {
exit('Error en la conexión a la base de datos');
}

$origen = $_POST[origen];
$cliente = $_POST[cliente];
$folio = $_POST[folio];

for($i=0;$i<count($origen);$i++)
{
$inset = "INSERT INTO MAE_POS (ORIGEN,CLIENTE,FOLIO)
VALUES ('$origen[$i]','$cliente[$i]','$folio[$i]')";
$result = odbc_exec($db,$inset);
if (!$result) {
exit("Error en la consulta");
}

}

echo "LOS DATOS FUERON INGRESADOS CORRECTAMENTE";
odbc_close($db);
?>
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 17:54.