Foros del Web » Programando para Internet » PHP »

insertar datos de dos tablas diferentes desde un mismo formulario

Estas en el tema de insertar datos de dos tablas diferentes desde un mismo formulario en el foro de PHP en Foros del Web. hola: Estoy desesperada por que no se como hacer lo siguiente: Tengo un formulario donde mando por metodo post las varibles a otro formulario, en ...
  #1 (permalink)  
Antiguo 27/04/2009, 20:45
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta insertar datos de dos tablas diferentes desde un mismo formulario

hola:

Estoy desesperada por que no se como hacer lo siguiente: Tengo un formulario donde mando por metodo post las varibles a otro formulario, en este segundo formulario tengo que validar si ya esta insertada en la base de datos informacion relacionada al primer formulario si no hay informacion entonces insertar la informacion del anterior y la del segundo formulario. El problema es que cuando paso al segundo formulario me valida e inmediatamente me inserta la informacion del primero y ya no me deja insertar la del segundo formulario.... Espero haberme dado a entender

El codigo que tengo para validar es el siguiente:

Código PHP:
<?php 
if(isset($_POST['Submit'])){
 
$query "SELECT nombre, apellido, edad, sexo FROM dia WHERE anio=".$_SESSION['anio']." ";
            
$checkanio_consulta mysql_query("SELECT nombre, apellido, edad, sexo FROM dia WHERE anio=".$_SESSION['anio']."");
            
$anio_consultas_exist mysql_num_rows($checkanio_consulta);
                       
            if (
$anio_consultas_exist>0) {
            echo 
"<p> los datos no se pudieron insertar por que, estan registrados de año    ",$_SESSION['anio'] ,"   por favor verifica el año";

            
$tabla1mysql_query($query) or die(mysql_error());
            
$fila mysql_fetch_assoc($tabla1);
            
      
      }else{
?>
y donde quiero insertar las dos tablas es:

Código PHP:
$strquery='insert into dia (anio, nombres, apellido, edad, sexo) values';
for(
$i=0;$i<count($_POST['nombres']);$i++){
if (!empty(
$_POST['nombres'][$i])) { 
    
$strquery.="('$anio', '".$_POST['nombres'][$i]."','".$_POST['apellido'][$i]."','".$_POST['edad'][$i]."','".$_POST['sexo'][$i]."'),";
    }
}
$strquery=substr($strquery,0,(strlen($strquery)-1)).';';
        
mysql_query($strquery) or die(mysql_error());
            echo 
'Ha sido registrado de manera satisfactoria.<br />';
        
                

}

Este es el que no me inserta por que inserto primero el anterior por la validacion

Código PHP:
<?php          
          
if(isset($_POST['Submit'])){
$strquery='insert into acc (responsable, fecha_programada, fecha_real, comentarios) values';
for(
$i=0;$i<count($_POST['responsable']);$i++){
if (!empty(
$_POST['responsable'][$i])) { 
    
$strquery.="('".$_POST['responsable'][$i]."','".$_POST['fecha_programada][$i]."','".$_POST['fecha_real'][$i]."','".$_POST['comentario'][$i]."','$anio',),";
     }
}
    
$strquery=substr($strquery,0,(strlen($strquery)-1)).';';
        mysql_query($strquery) or die(mysql_error());
            echo 'El registro se ha llevado acabo de  de manera satisfactoria.<br />';    
                
}
}
?>

En verdad espero y me puedan ayudar!!!! por favor
  #2 (permalink)  
Antiguo 27/04/2009, 22:02
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años, 7 meses
Puntos: 19
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

rellena el primer formulario envialo al formulario 2 y haz tu validacion si ya existe pues no se que haces, pero si no estan los datos guardalos en hidden en el segundo formulario y de ahi ya manda el formulario dos con sus datos y los hidden que tienen tambien los datos del formulario uno y pos ya de ahi has el guardado de los 2 formularios
  #3 (permalink)  
Antiguo 27/04/2009, 23:40
 
Fecha de Ingreso: abril-2009
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

Es que los INSERTS tienen que estar juntos.. y que esten en el tercer paso (cuanno envias el segundo formulario)..
y para juntar los datos tenes que hacer como dice By_george:

Código html:
Ver original
  1. <input  id="nombre" type="hidden" value="<? echo $_POST['nombre']; ?>" />

asi con cada input recibido...
  #4 (permalink)  
Antiguo 28/04/2009, 05:34
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 0
ok chicos pues probaré la idea que me dan y yo les aviso que pasa...

bueno pues como se podrán dar cuenta soy nueva en esto y pues
resulta que he probado la solucion que me proponen, sin embargo no me sale
pues cuando hago el tercer paso (enviar el segundo formulario) para
insertar las dos tablas me manda el siguiente error.

Notice: Undefined index: nombre in C:\xampp\htdocs\doc\insertar.php on line 37

no se mucho de esto, pero no se si tenga algo que ver el que mis datos de mi
primer y segundo formulario los manejo como arreglos y por esa razon no me los
guarda como tipo hidden

En verdad necesito ayuda!!!!!

Última edición por GatorV; 28/04/2009 a las 12:22
  #5 (permalink)  
Antiguo 28/04/2009, 12:21
 
Fecha de Ingreso: abril-2009
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

el error te está diciendo que el indice 'nombre' del array no existe... si podes pone los codigos asi es mas facil de encontrar el error

saludos
  #6 (permalink)  
Antiguo 28/04/2009, 12:31
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

Esta parte el donde mando mi informacion para poder insertar, la validacion del
formulario anterior me la realiza muy bien pero no pasa los arreglos..

<input id="nombre" type="hidden" value="<? echo $_POST['nombre']; ?>" />
<input id="apellido" type="hidden" value="<? echo $_POST['apellido']; ?>" />
<input id="edad" type="hidden" value="<? echo $_POST['edad']; ?>" />
<input id="sexo" type="hidden" value="<? echo $_POST['sexo']; ?>" />

$strquery='insert into dia (anio, nombres, apellido, edad, sexo) values';
for($i=0;$i<count($_POST['nombres']);$i++){
if (!empty($_POST['nombres'][$i])) {
$strquery.="('$anio', '".$_POST['nombres'][$i]."','".$_POST['apellido'][$i]."','".$_POST['edad'][$i]."','".$_POST['sexo'][$i]."'),";
}
}
$strquery=substr($strquery,0,(strlen($strquery)-1)).';';
mysql_query($strquery) or die(mysql_error());
echo 'Ha sido registrado de manera satisfactoria.<br />';



$strquery='insert into acc (responsable, fecha_programada, fecha_real, comentarios) values';
for($i=0;$i<count($_POST['responsable']);$i++){
if (!empty($_POST['responsable'][$i])) {
$strquery.="('".$_POST['responsable'][$i]."','".$_POST['fecha_programada][$i]."','".$_POST['fecha_real'][$i]."','".$_POST['comentario'][$i]."','$anio',),";
}
}

$strquery=substr($strquery,0,(strlen($strquery)-1)).';';
mysql_query($strquery) or die(mysql_error());
echo 'El registro se ha llevado acabo de de manera satisfactoria.<br />';

}
}
}
}

la linea en la que me marca el error es:

for($i=0;$i<count($_POST['nombres']);$i++){
  #7 (permalink)  
Antiguo 28/04/2009, 12:36
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años, 7 meses
Puntos: 19
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

oye no deberia de ser name en lugar de id para que te lo reconociera

<input name="nombre" type="hidden" value="<? echo $_POST['nombre']; ?>" />
<input name="apellido" type="hidden" value="<? echo $_POST['apellido']; ?>" />
<input name="edad" type="hidden" value="<? echo $_POST['edad']; ?>" />
<input name="sexo" type="hidden" value="<? echo $_POST['sexo']; ?>" />
  #8 (permalink)  
Antiguo 28/04/2009, 12:51
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

aun cambiandole me sigue marcando el mismo error Ayuda por favor!!!!!!!!!
  #9 (permalink)  
Antiguo 28/04/2009, 13:06
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

Ya me inserta algunos valores a la base de datos, digo alguno por que solo me pone la letra A

Notice: Uninitialized string offset: 5 in C:\xampp\htdocs\doc\insertar.php on line 58

Notice: Uninitialized string offset: 6 in C:\xampp\htdocs\doc\insertar.php on line 58

Notice: Uninitialized string offset: 7 in C:\xampp\htdocs\doc\insertar.php on line 58

Notice: Uninitialized string offset: 8 in C:\xampp\htdocs\doc\insertar.php on line 58


esta es la linea 58
$strquery.="('".$_POST['responsable'][$i]."','".$_POST['fecha_programada][$i]."

esta la 57
if (!empty($_POST['responsable'][$i])) {


A este error la verdad no le entiendo me podrian decir por que salio..
  #10 (permalink)  
Antiguo 28/04/2009, 20:10
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

hola por favor alguien me puede ayudar con los errores que les mostre anteriormente Necesito ayuda !!!!!!!!!!!!!!!!!!!!!!!
  #11 (permalink)  
Antiguo 28/04/2009, 22:28
rqd
 
Fecha de Ingreso: julio-2008
Mensajes: 228
Antigüedad: 16 años, 4 meses
Puntos: 8
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

el valor de la $i esta accediendo a una parte del arreglo que no esta definida, revisa el valor de la $i en cada línea
  #12 (permalink)  
Antiguo 29/04/2009, 05:54
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

mmm soy muy novata en esto, me pordian decir como se revisa el valor de la $i en cada linea... por favor y por que las partes que si me insertar me pone una A en vez de ponerme los valores que le indique, se que talvez ha de ser algo muy sencillo lo que intento hacer pero apenas estoy aprendiendo y ya llevo un buen de tiempo con este problema... mil gracias por su ayuda
  #13 (permalink)  
Antiguo 29/04/2009, 11:01
 
Fecha de Ingreso: abril-2009
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

falta una comilla en la variable fecha_programada

Código PHP:
Ver original
  1. $strquery.="('".$_POST['responsable'][$i]."','".$_POST['fecha_programada][$i]."','".$_POST['fecha_real'][$i]."','".$_POST['comentario'][$i]."','$anio',),";
  2.     }

deberia ser asi:

Código PHP:
Ver original
  1. $strquery.="('".$_POST['responsable'][$i]."','".$_POST['fecha_programada'][$i]."','".$_POST['fecha_real'][$i]."','".$_POST['comentario'][$i]."','$anio',),";
  2.      }
  #14 (permalink)  
Antiguo 29/04/2009, 17:35
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

mmmm pues gracias por la observacion , pero aun poniendo la comilla me marca el mismo error...
Alguna otra sugerencia para esta pobre desesperada por favor ...
  #15 (permalink)  
Antiguo 29/04/2009, 21:41
rqd
 
Fecha de Ingreso: julio-2008
Mensajes: 228
Antigüedad: 16 años, 4 meses
Puntos: 8
Respuesta: insertar datos de dos tablas diferentes desde un mismo formulario

haz un print $i para ver en que valor de esa variable de marca el error.
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 21:40.