Foros del Web » Programando para Internet » PHP »

problemas al insertar datos en dos tablas

Estas en el tema de problemas al insertar datos en dos tablas en el foro de PHP en Foros del Web. alguien me podria echar una mano, tengo la siguiente confusion , tengo un formulario donde debo insertar datos en dos tablas ( proyectos y proyecto ...
  #1 (permalink)  
Antiguo 17/05/2011, 20:24
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
problemas al insertar datos en dos tablas

alguien me podria echar una mano, tengo la siguiente confusion , tengo un formulario donde debo insertar datos en dos tablas (proyectos y proyecto disenador)como se aprecia la tabla proyectodisenador hace la relacion de uno a muchos y de muchos a uno como puedo realizar esta operacion , posteo mi codigo si alguien me pudiera encaminar.


tengo las siguientes tablas

disenador
iddisenador
nombre

proyectos
idproyecto
nombreproyecto

proyectodisenador
idproyectodisenador
iddisenador
idproyecto


mi formulario

proyectos.php

Código PHP:
Ver original
  1. <form action="operacion.php" method="POST" enctype="multipart/form-data">
  2. <input type="hidden" value="subeimagen" name="operacion">
  3. <!--<input type="hidden" name="iddisenador" value="iddisenador">
  4. <input type="hidden" name="idproyecto" value="idproyecto">-->
  5. <br>
  6. <h5>SUBIR PROYECTOS</h5><br>
  7. <table cellspacing="7" border="0" widht="500" bgcolor="#efeff5" class="letras">
  8.   <tr>
  9.     <td>Subir Im&aacute;gen</td>
  10.     <td><input name="archivo" type="file"></td>
  11.   </tr>
  12.   <tr>
  13.     <td>Nombre del Proyecto:</td>
  14.     <td><input type="text" name="nombreproyecto"></td>
  15.   </tr>
  16.   <tr>
  17.     <td>Tipo de Proyecto</td>
  18.     <td>   
  19.         <SELECT NAME="areaespecializacion">
  20.             <?php
  21.                 $sql="select * from areaespecializacion";
  22.                 $resultado=mysql_query($sql,$link)or die(mysql_error());
  23.                     while($row = mysql_fetch_array($resultado)) {
  24.                             $idareaespecializacion=$row["idareaespecializacion"];
  25.                             $areaespecializacion=$row["areaespecializacion"];
  26.                          
  27.                             echo"<option value=$idareaespecializacion>$areaespecializacion</option>";
  28.                        
  29.                         }
  30.             ?>
  31.         </SELECT></td>
  32.   </tr>
  33.   <tr>
  34.     <td colspan="2"></td>
  35.   </tr>
  36.   <tr>
  37.     <td></td>
  38.     <td valign="center"><input type="submit" value="Subir Proyecto" class="botones" /></td>
  39.   </tr>
  40. </table>
  41. </form>

mi archivo que ejecuta la operacion de insertar

operacion.php

Código PHP:
Ver original
  1. case subeimagen:
  2. $sql_imagen="INSERT INTO proyectos (archivo,nombreproyecto,idareaespecializacion,fecha) values('".$HTTP_POST_FILES['archivo']['name']."','".$_POST["nombreproyecto"]."','".$_POST["areaespecializacion"]."',NOW())";
  3. //$result_imagen=mysql_query($sql_imagen,$link);
  4. $result_imagen=mysql_query($sql_imagen,$link) or die ("consulta1: ".mysql_error());
  5.  
  6. $sqlx="INSERT INTO proyectodisenador (iddisenador,idproyecto) values('".$_POST["iddisenador"]."','".$_POST["idproyecto"]."')";
  7. //$resultx=mysql_query($sqlx,$link);
  8. $resultx=mysql_query($sqlx,$linkx) or die ("consulta2: ".mysql_error());
  9.  
  10. //copia archivo en carpeta temporal
  11. if(move_uploaded_file($_FILES['archivo']['tmp_name'],"/home/industr8/public_html/plaho/d/proyectos/".$_FILES['archivo']['name']."")){
  12. header("location:index.php?v=misproyectos");
  13. }
  14. break;

como puedo insertar esos dos datos iddisenador e idproyecto en la tabla proyectodisenador , espero puedan ayudarme de antemano gracias por su tiempo

saludos

Última edición por matt_1985; 17/05/2011 a las 21:46
  #2 (permalink)  
Antiguo 17/05/2011, 21:51
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Respuesta: problemas al insertar datos en dos tablas

Hola matt_1985:


Esta un poco confuso tu codigo, pero en la tabla "proyectodisenador" no deberia tener el campo "idproyecto", si no al reves, que en la tabla "proyectos" exista un campo que se llame "iddisenador" para asi relacionar todos los proyectos con ese id.

Por otra parte te recomiendo en los nombres de las tablas utilizar un separador de palabras para que sea mas facil de entender(un guion bajo esta ok):

"id_proyecto" en vez de "idproyecto"

digo, cada quien hace lo que quiere con el nombre de sus tablas solo es una sugerencia.


Saludos y suerte!
  #3 (permalink)  
Antiguo 17/05/2011, 22:01
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas al insertar datos en dos tablas

Pero independiente de la solucion que me planteas como podria insertar ese id ?
  #4 (permalink)  
Antiguo 17/05/2011, 22:24
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: problemas al insertar datos en dos tablas

Hola,

Cita:
Iniciado por Juanchooo Ver Mensaje
... en la tabla "proyectodisenador" no deberia tener el campo "idproyecto", si no al reves, que en la tabla "proyectos" exista un campo que se llame "iddisenador" para asi relacionar todos los proyectos con ese id. ...
Esa estructura no te permitiría tener varios diseñadores trabajando en el mismo proyecto. Con la estructura que presenta puede tener N diseñadores trabajando en el mismo proyecto y al los mismos diseñadores trabajando en N proyectos. Por eso es uno a muchos y uno a muchos, aunque suene redundante.

Lo único es que eliminaría el campo idproyectodisenador, ese no sirve de nada, la llave primaria debe ser iddisenador + idproyecto, puesto que no se debería ingresar al mismo diseñador en el mismo proyecto dos veces.

proyectodisenador
idproyectodisenador
iddisenador PRIMARY
idproyecto PRIMARY

Y las operaciones son en base a los códigos, sino, si quieres eliminar un diseñador de un proyecto primero tendrías que buscar su idproyectodisenador para poder hacer un delete. O lo que es lo mismo ... normalmente tienes que saber a quién vas a eliminar de que proyecto, y eso te da la llave primaria.

Cita:
Iniciado por matt_1985 Ver Mensaje
Pero independiente de la solucion que me planteas como podria insertar ese id ?
http://php.net/manual/es/function.mysql-insert-id.php

Saludos,

Última edición por HackmanC; 17/05/2011 a las 22:51 Razón: idproyectodisenador
  #5 (permalink)  
Antiguo 18/05/2011, 07:57
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas al insertar datos en dos tablas

Muchas gracias HackmanC , la verdad no conocia esa funcion que me indicas , le dare un vistaso a lo que me indicas y te cuento si me resulto.

Saludos
  #6 (permalink)  
Antiguo 18/05/2011, 14:00
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Respuesta: problemas al insertar datos en dos tablas

Ja se me habia ido ese detalle xD, una disculpa, entonces si ibas por buen camino, y utilizando la funcion que menciona HackmanC sacas el Id del ultmo registro insertado, y ya con ese dato puedes hacer la otra insercion en la siguiente tabla.

Un detalle para HackmanC:

Cita:
Lo único es que eliminaría el campo idproyectodisenador, ese no sirve de nada, la llave primaria debe ser iddisenador + idproyecto, puesto que no se debería ingresar al mismo diseñador en el mismo proyecto dos veces.

en mi opinion si deberia dejar ese campo, ya que seria el id unico con el que se identificaria ese registro en la tabla de relaciones, ya que sin el no habria manera de identificar cada uno de los registros, recordemos que como es una tabla de relaciones habra varios campos con un mismo valor (por ejemplo id_disenador en el caso que tenga mas de un proyecto asignado, o id_proyecto que obviamente habra varios disenadores trabajando en el)


Saludos y suerte!!!
  #7 (permalink)  
Antiguo 18/05/2011, 14:04
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas al insertar datos en dos tablas

juanchoo , concuerdo contigo en este comentario ya que ese idproyectodisenador lo habia asignado para identificar esa tabla .


Gracias y saludos por tus comentarios .
  #8 (permalink)  
Antiguo 18/05/2011, 20:15
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: problemas al insertar datos en dos tablas

Hola,

Cita:
Iniciado por Juanchooo Ver Mensaje
.. en mi opinion si deberia dejar ese campo, ya que seria el id unico con el que se identificaria ese registro en la tabla de relaciones, ya que sin el no habria manera de identificar cada uno de los registros, recordemos que como es una tabla de relaciones habra varios campos con un mismo valor (por ejemplo id_disenador en el caso que tenga mas de un proyecto asignado, o id_proyecto que obviamente habra varios disenadores trabajando en el) ...
Nop ... es absolutamente inútil, es decir, ese campo al final nunca sirve de nada. Por eso escribí: la llave primaria debe ser diseñador más proyecto, al juntar el id_diseñador más el id_proyecto te da una 'llave única'. Por si acaso ... sí se pueden hacer llaves primarias de dos campos. Y esa unión de campos diseñador MÁS proyecto nunca se va a repetir y va a ser única ... como deben ser las llaves primarias.

¿Por qué?

La respuesta es sencilla, nunca vas a buscar por idproyectodisenador, ese código nunca lo vas a saber con antelación, por lo menos no en un sistema 'amigable', si vas a eliminar a un diseñador de un proyecto, necesitas el ID del diseñador y el ID del proyecto. O acaso tu programa va a preguntar: ingrese el ID que se guardo hace tres meses para juntar el ID del diseñador y el ID del proyecto, que no es ninguno de los dos anteriores, y usted lo tuvo que haber apuntado en algún lugar.

Si lo pones en un ejemplo es claro y evidente:
Código:
			______llave primaria______
IDProyectoDiseñador	IDDiseñador	IDProyecto
1			1		1
2			1		2
3			2		1
Veamos la eliminación de un diseñador de un proyecto:
Código SQL:
Ver original
  1. DELETE FROM tabla WHERE id_disenador = 1 AND id_proyecto = 1

Quiero borrar todos los proyectos del diseñador 1:
Código SQL:
Ver original
  1. DELETE FROM tabla WHERE id_disenador = 1

Quiero borrar el proyecto 1 y todos sus diseñadores:
Código SQL:
Ver original
  1. DELETE FROM tabla WHERE id_proyecto = 1

¿O qué .. vas a sacar el ID de cada uno para borrarlos? Y lo mismo sucede con el update. Un programa decente mostraría un listado de los proyectos en los cuales está trabajando cada diseñador, y con eso tienes suficiente para 'ubicar' un registro, una vez la llave primaria sea : IDDiseñador MAS IDProyecto.

Pero bueno ... al final el que está haciendo el programa eres tu.

Saludos,

ps:

Cuando digo ID mas ID .. no es una suma. Es la unión de dos campos para formar una llave primaria como casi cualquier base de datos permite hacer.

Última edición por HackmanC; 18/05/2011 a las 20:36 Razón: alinear la tabla y subrayar las partes importantes
  #9 (permalink)  
Antiguo 19/05/2011, 10:46
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas al insertar datos en dos tablas

Gracias por la aclaración HackManc , la verdad estoy agradecido por tus comentarios y ayuda desinteresada voy a considerar lo que me indicas ya que me habia topado con el problema que muestras .
  #10 (permalink)  
Antiguo 19/05/2011, 21:26
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Respuesta: problemas al insertar datos en dos tablas

Hola de nuez!


Tienes razon en el aspecto de ambas claves primarias, sin embargo el campo "idproyectodisenador" es para un facil uso interno, no para que el usuario busque por idproyectodisenador, me explico:

Una vez que el usuario busque: tal disenador + tal proyecto, tu obtendras un registro cpn su respectivo id, y asi para posteriores consultas o para relacionar con otras tablas ya solo haras referencia a ese id y no volveeeeeer a hacer las consultas comparando con iddisenador + idproyecto( q flojera no?), solo por practicidad.


y bueno, como tu dices al final cada kien es responsable de su programa.


Saludos!!!
  #11 (permalink)  
Antiguo 19/05/2011, 21:58
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas al insertar datos en dos tablas

la verdad intente implementar lo de la sentencia mysql_insert_id , pero me arrojo error, mi duda es que son dos id de distintas tablas que no se de donde tomar sus valores para insertarlos ? lo que en si necesito es poder insertar esos id en la tabla proyectodisenador.
mi codigo :

Código PHP:
Ver original
  1. case subeimagen:
  2. $sql_imagen="INSERT INTO proyectos (archivo,nombreproyecto,idareaespecializacion,fecha) values('".$HTTP_POST_FILES['archivo']['name']."','".$_POST["nombreproyecto"]."','".$_POST["areaespecializacion"]."',NOW())";
  3. //$result_imagen=mysql_query($sql_imagen,$link);
  4. $result_imagen=mysql_query($sql_imagen,$link) or die ("consulta1: ".mysql_error());
  5.  
  6. $sqlx="INSERT INTO proyectodisenador (iddisenador,idproyecto) values('".$_POST["iddisenador"]."','".$_POST["idproyecto"]."')";
  7. //$resultx=mysql_query($sqlx,$link);
  8. $resultx=mysql_insert_id($sqlx,$linkx) or die ("consulta2: ".mysql_error());
  9.  
  10. //copia archivo en carpeta temporal
  11. if(move_uploaded_file($_FILES['archivo']['tmp_name'],"/home/industr8/public_html/plaho/d/proyectos/".$_FILES['archivo']['name']."")){
  12. header("location:index.php?v=misproyectos");
  13. }
  14. break;

y el error que me arrojo

Código PHP:
Ver original
  1. Warning: Wrong parameter count for mysql_insert_id() in /home/industr8/public_html/plaho/d/operacion.php on line 87
  2. consulta2:

Última edición por matt_1985; 19/05/2011 a las 22:09
  #12 (permalink)  
Antiguo 19/05/2011, 23:09
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: problemas al insertar datos en dos tablas

Hola,

Cita:
Iniciado por Juanchooo Ver Mensaje
... Una vez que el usuario busque: tal disenador + tal proyecto, tu obtendras un registro cpn su respectivo id, y asi para posteriores consultas o para relacionar con otras tablas ya solo haras referencia a ese id y no volveeeeeer a hacer las consultas comparando con iddisenador + idproyecto( q flojera no?), solo por practicidad. ...
Odio tener que llevarte la contraria, es decir, no pienses que lo hago por ningún motivo diferente a facilidad y obtener resultados prácticos, y solamente estoy siendo objetivo sobre el problema.

Primer problema, además de la llave primaria tendrías que definir un índice secundario de tipo único (unique) para que id_diseñador e id_proyecto no se repitan, lo cual podría tener consecuencias graves como resultados duplicados en los reportes. Si la llave primaria es id_diseñador + id_proyecto automáticamente es un indice único. Y ya sabemos lo que pasa cuando agregamos índices por doquier a tablas grandes, y muchas veces la llave primaria está 'clusterada'.

Otro problema, para obtener ese id_proyecto_diseñador primero tuviste que hacer una consulta para obtenerlo y posteriormente otra para realizar la acción. Como por ejemplo:

Pseudocódigo (código que no es ningún lenguaje de programación especifico):
Código:
$idp = 1;
$idd = 1;
$res = select id_proyecto_diseñador from tabla where id_proyecto = $idp and id_disenador = $idd;
update tabla set (data = algo) where id_proyecto_diseñador = $res;
delete from tabla where id_proyecto_diseñador = $res;
Mientras que podrías haber hecho:
Código:
$idp = 1;
$idd = 1;
update tabla set (data = algo) where id_proyecto = $idp and id_disenador = $idd;
delete from tabla id_proyecto = $idp and id_disenador = $idd;
No le veo la complejidad al asunto. Y no usé el id_proyecto_diseñador.

Una solución que es práctica, si vas a hacer una relación a otra tabla, en la otra tabla tienes que tener el id_disenador y el id_proyecto, y haces la relación a los dos campos (igual que la llave primaria a dos campos). Si quieres obtener los registros de la otra tabla solamente haces un query, veamos un ejemplo de una relación a otra tabla con nombre elegidos:

Esto te da todos los nombres de los elegidos que pertenecen al proyecto 1.
Código:
select nombre from elegidos where id_proyecto = 1;
Mientras que si lo haces por el id_proyecto_disenador quedaría así:
Código:
select nombre from elegidos a
inner join tabla b on a.id_proyecto_disenador = b.id_proyecto_disenador
where b.id_proyecto = 1;
Y repito no es mi intención llevarte la contraria, he diseñado muchas aplicaciones de todo tipo y en las relaciones uno a muchos y uno a muchos de tres tablas, nunca me ha servido ese campo sino es para complicar las cosas.

Ahora piensa en usa misma estructura en cascada en doce niveles. Yo puedo sacar el ID_Corporacion de la tabla Usuarios, porque el Usuario no tiene un ID_Corporacion_Empresa_Departamento_Usuario sino tiene un ID_Corporación + ID_Empresa + ID_Departamento + IDUsuario como llave primaria.

Cita:
Iniciado por matt_1985 Ver Mensaje
$sql_imagen="INSERT INTO proyectos (archivo,nombreproyecto,idareaespecializacion,fech a) values('".$HTTP_POST_FILES['archivo']['name']."','".$_POST["nombreproyecto"]."','".$_POST["areaespecializacion"]."',NOW())";
//$result_imagen=mysql_query($sql_imagen,$link);
$result_imagen=mysql_query($sql_imagen,$link) or die ("consulta1: ".mysql_error());

$sqlx="INSERT INTO proyectodisenador (iddisenador,idproyecto) values('".$_POST["iddisenador"]."','".$_POST["idproyecto"]."')";
//$resultx=mysql_query($sqlx,$link);
$resultx=mysql_insert_id($sqlx,$linkx) or die ("consulta2: ".mysql_error());
Pues no sé exactamente de donde sacaste esa idea, y no sé si te tomaste la molestía de leer la información que está en el manual de PHP.

Código:
$sql_imagen="INSERT INTO proyectos (archivo,nombreproyecto,idareaespecializacion,fecha) values('".$HTTP_POST_FILES['archivo']['name']."','".$_POST["nombreproyecto"]."','".$_POST["areaespecializacion"]."',NOW())";
$result_imagen=mysql_query($sql_imagen,$link) or die ("consulta1: ".mysql_error());
$id = mysql_insert_id($link);
$sqlx="INSERT INTO proyectodisenador (iddisenador,idproyecto) values('".$_POST["iddisenador"]."','".$id."')";
$resultx=mysql_query($sqlx,$link);
$resultx=mysql_insert_id($sqlx,$linkx) or die ("consulta2: ".mysql_error()); 
Bueno, da igual, espero haber sido de alguna ayuda,
Saludos.

Última edición por HackmanC; 19/05/2011 a las 23:35 Razón: EDIT
  #13 (permalink)  
Antiguo 22/05/2011, 20:15
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas al insertar datos en dos tablas

HackmanC , el codigo que me indicas solo me inserta el iddisenador , en la tabla proyectodisenador , el idproyecto me aparece en 0 , según leo en la documentación solo Obtiene un ID generado en la última consulta, aun estoy pegado con la inserción del idproyecto , nose en que estoy haciendo mal , si alguien pudiese ayudarme , lo que me comentabas del idproyectodisenador hice la correcion que me dijiste .

Saludos

Última edición por matt_1985; 22/05/2011 a las 20:27
  #14 (permalink)  
Antiguo 23/05/2011, 20:06
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas al insertar datos en dos tablas

me quedo la siguiente estructura en la bd .

proyectodisenador
iddisenador (primary key)
idproyecto (primary key)

proyectos
idproyecto (primary key)
nombre

disenador
iddisenador (primary key)
nombre

como comente anteriomente me inserta solo el codigo del idproyecto en la tabla proyecto disenador el codigo esta de la siguiente forma .

Código PHP:
Ver original
  1. $sql_imagen="INSERT INTO proyectos (archivo,nombreproyecto,idareaespecializacion,fecha) values('".$HTTP_POST_FILES['archivo']['name']."','".$_POST["nombreproyecto"]."','".$_POST["areaespecializacion"]."',NOW())";
  2. //$result_imagen=mysql_query($sql_imagen,$link);
  3. $result_imagen=mysql_query($sql_imagen,$link) or die ("consulta1: ".mysql_error());
  4.  
  5. $id = mysql_insert_id($link);
  6. $sqlx="INSERT INTO proyectodisenador (iddisenador,idproyecto) values('".$_POST["iddisenador"]."','".$id."')";
  7. $resultx=mysql_query($sqlx,$link);


me podrian ayudar a resolver mi problema , nose en que me estoy equivocando , espero puedan ayudarme .

Saludos
  #15 (permalink)  
Antiguo 25/05/2011, 18:27
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
problemas mysql_insert_id

Necesito insertar dos id de dos tablas distintas , pero solo me inserta en una , nose en que estoy fallando espero puedan ayudarme , posteo mi codigo

Código PHP:
Ver original
  1. $sql_imagen="INSERT INTO proyectos (archivo,nombreproyecto,idareaespecializacion,fecha) values('".$HTTP_POST_FILES['archivo']['name']."','".$_POST["nombreproyecto"]."','".$_POST["areaespecializacion"]."',NOW())";
  2. //$result_imagen=mysql_query($sql_imagen,$link);
  3. $result_imagen=mysql_query($sql_imagen,$link) or die ("consulta1: ".mysql_error());
  4.  
  5. $id = mysql_insert_id($link);
  6. $sqlx="INSERT INTO proyectodisenador (iddisenador,idproyecto) values('".$_POST["iddisenador"]."','".$id."')";
  7. $resultx=mysql_query($sqlx,$link);
  8.  
  9. //copia archivo en carpeta temporal
  10. if(move_uploaded_file($_FILES['archivo']['tmp_name'],"/home/".$_FILES['archivo']['name']."")){
  11. header("location:index.php?v=misproyectos");
  12. }

saludos ...
  #16 (permalink)  
Antiguo 25/05/2011, 20:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas mysql_insert_id

Usa también el or die() en el segundo query para verificar si esta fallando o no.
  #17 (permalink)  
Antiguo 25/05/2011, 20:19
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas mysql_insert_id

GatorV, efectivamente probe lo que me indicabas
Código PHP:
Ver original
  1. $id = mysql_insert_id($link);
  2. $sqlx="INSERT INTO proyectodisenador (iddisenador,idproyecto) values('".$_POST["iddisenador"]."','".$id."')";
  3. $resultx=mysql_query($sqlx,$link) or die ("consulta3: ".mysql_error());


iddisenador
0

idproyecto

11

y no me arrojo ningun error , solo me inserta el idproyecto y necesito ingresar el iddisenador , pero me aparece en 0 el valor en mi tabla , nose que podra ser la verdad ...

Última edición por matt_1985; 25/05/2011 a las 20:27
  #18 (permalink)  
Antiguo 25/05/2011, 20:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas mysql_insert_id

Prueba hacer un var_dump($_POST) y verifica que valor tienes para iddisenador.

Saludos.
  #19 (permalink)  
Antiguo 25/05/2011, 20:49
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: problemas al insertar datos en dos tablas

Hola,

La instrucción mysql_insert_id te debería devolver el ID del último autonumérico generado, como no estás insertando el ID en la tabla proyectos supongo que es un autonumérico. Pero si no te funciona con los cambios que te indiqué, entonces no tengo ni idea cual es el motivo por el cual no devuelve el valor. Lo único que se me ocurre es que no sea un autonumérico.

Huuuu ... que rápido van acá ... yo leí mal creí que era el otro campo el que no se insertaba correctamente, prueba lo que te indica GatorV puesto que evidentemente no estás recibiendo el valor adecuado.

Saludos,

Última edición por HackmanC; 25/05/2011 a las 22:42 Razón: edicion
  #20 (permalink)  
Antiguo 26/05/2011, 19:10
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas al insertar datos en dos tablas

hice lo que me indicaron y me arrojo lo siguiente

Código PHP:
Ver original
  1. array(3) { ["operacion"]=> string(10) "subeimagen" ["nombreproyecto"]=> string(5) "eqweq" ["areaespecializacion"]=> string(1) "1" }
  #21 (permalink)  
Antiguo 26/05/2011, 19:48
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: problemas al insertar datos en dos tablas

Hola,

Pues yo no miro el ID del diseñador (iddisenador) por ningún lado ... y tú?

Código PHP:
Ver original
  1. {
  2. ["operacion"]=> string(10) "subeimagen"
  3. ["nombreproyecto"]=> string(5) "eqweq"
  4. ["areaespecializacion"]=> string(1) "1"
  5. }

Lo que sucede es que no estas pasando el ID por el $_POST, de algún lado lo tienes que sacar, y lógicamente debe ser el correcto, pero por el POST no lo estas mandando.

Saludos,

Etiquetas: tablas
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 06:56.