Foros del Web » Programando para Internet » PHP »

problema relacion de tablas y envio de datos

Estas en el tema de problema relacion de tablas y envio de datos en el foro de PHP en Foros del Web. tengo un problema grave al enviar datos de 2 tablas primera tabla(productos) idproducto(PK) nombrep unidades codigop marca descripcion costo stock segunda tabla (inventario) idinventario(PK) idproducto(FK) ...
  #1 (permalink)  
Antiguo 18/07/2015, 15:12
 
Fecha de Ingreso: julio-2015
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Exclamación problema relacion de tablas y envio de datos

tengo un problema grave al enviar datos de 2 tablas

primera tabla(productos)
idproducto(PK)
nombrep
unidades
codigop
marca
descripcion
costo
stock

segunda tabla (inventario)
idinventario(PK)
idproducto(FK)
stock

quiero q de la tabla uno mande datos a la tabla 2 stock que salga en la tabla 1 el valor cargado por el usuario y que en la tabla 2 tome el valor del idproducto donde esta ubicado el valor aqui esta parte del codigo: me carga perfecto la primera tabla pero no me manda nada de valores a la segunda tabla

<TITLE>New Document</TITLE>
</HEAD>
<BODY>

<?php
$nombrep=$_GET['nombrep'];
$unidadesp=$_GET['unidadesp'];
$codigop=$_GET['codigop'];
$marca=$_GET['marca'];
$descripcion=$_GET['descripcion'];
$costo=$_GET['costo'];
$stock=$_GET['stock'];
//conexion con el servidor
$conexion=mysql_connect('localhost','root','');
//conexion con base de datos
$b=mysql_select_db('farmacia',$conexion);
//agregar la informacion
$query=mysql_query("insert into productos(nombrep,unidadesp,codigop,marca,descripc ion,costo,stock)value('$nombrep','$unidadesp','$co digop','$marca','$descripcion','$costo','$stock')" , $conexion);
$a.$c="";
$a = mysql_query("select idproducto,idinventario,stock from producto");
while($row0 =mysql_fetch_array($a))
{
$idproducto=$row0['idproducto'];
$idinventario=$row0['idinventario'];
$stock=$row0['stock'];
$insertar="insert into inventario(idinventario,idproducto,stock) value('$idproducto','$idinventario','$stock')";
}

?>
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 18/07/2015, 16:08
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 10 meses
Puntos: 69
Respuesta: problema relacion de tablas y envio de datos ayudaa!

No entendí exactamente qué es lo que necesitas, puedes explicarlo con un ejemplo?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 18/07/2015, 18:01
 
Fecha de Ingreso: julio-2015
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: problema relacion de tablas y envio de datos ayudaa!

Cita:
Iniciado por chronos682 Ver Mensaje
No entendí exactamente qué es lo que necesitas, puedes explicarlo con un ejemplo?
tengo 2 tabla donde la tabla uno tiene los valores antes mencionados cuando envio el formulario manda los datos a los campos de la base de datos ya creada necesito que en la tabla 2 tenga una vista de relacion donde ella muestre en el stock el valor 1 que se referira en la fila 1 se encuentra el valor del stock


la tabla 1 es la tabla que es alimentada por el formulario

y la tabla 2 es la que recibe datos de la tabla 1 solo el valor stock no el guardado en la base de datos sino el id.
  #4 (permalink)  
Antiguo 18/07/2015, 18:22
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: problema relacion de tablas y envio de datos ayudaa!

estas mas enrredado que un plato de espaguetis no entendi ni papas amigo, el asunto es que como la tabla dos va a mostrar datos que no recibe???
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 18/07/2015, 18:24
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: problema relacion de tablas y envio de datos ayudaa!

create un grafico o un dibujito para orientar mejor el asunto
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 18/07/2015, 18:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema relacion de tablas y envio de datos ayudaa!

Cita:
Iniciado por r1krdo_7 Ver Mensaje
tengo 2 tabla donde la tabla uno tiene los valores antes mencionados cuando envio el formulario manda los datos a los campos de la base de datos ya creada necesito que en la tabla 2 tenga una vista de relacion donde ella muestre en el stock el valor 1 que se referira en la fila 1 se encuentra el valor del stock


la tabla 1 es la tabla que es alimentada por el formulario

y la tabla 2 es la que recibe datos de la tabla 1 solo el valor stock no el guardado en la base de datos sino el id.
Ok.
¿Tienes claro que no existen en la base de datos funciones automágicas que hagan que la segunda tabla obtenga los datos, a menos que le envíes tu mismo un INSERT?
Aunque definas una FK, eso no hace que en forma espontánea se hagan inserciones. Las FK están para proteger las integridades de datos, no para que una tabla "herede" en forma sobrenatural un valor dado en una tabla. SI no se lo insertas, simplemente no lo recibirá.

Lo que debe hacer tu script es:
1) Validar todo lo que entra (cosa que todos se olvidan de hacer).
2) Enviar a realziar el primer INSERT.
3) Recuperar el ID generado, si es un autoincremental).
4) Insertar el registro en la segunda tabla con los dos ID correspondientes (uno de inventario y otro delID recuperado den INSERT anterior).

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 18/07/2015, 19:05
 
Fecha de Ingreso: julio-2015
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: problema relacion de tablas y envio de datos ayudaa!

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Ok.
¿Tienes claro que no existen en la base de datos funciones automágicas que hagan que la segunda tabla obtenga los datos, a menos que le envíes tu mismo un INSERT?
Aunque definas una FK, eso no hace que en forma espontánea se hagan inserciones. Las FK están para proteger las integridades de datos, no para que una tabla "herede" en forma sobrenatural un valor dado en una tabla. SI no se lo insertas, simplemente no lo recibirá.

Lo que debe hacer tu script es:
1) Validar todo lo que entra (cosa que todos se olvidan de hacer).
2) Enviar a realziar el primer INSERT.
3) Recuperar el ID generado, si es un autoincremental).
4) Insertar el registro en la segunda tabla con los dos ID correspondientes (uno de inventario y otro delID recuperado den INSERT anterior).

¿Se entiende?
tu si tienes idea de lo que me refiero lo que no se es hacer es el codigo para hacer el insert a que te refieres para cargar la segunda tabla....

ahora bien la tabla 1 es la principal donde recibe los datos del formulario lo carga a la base de datos perfecto en la tabla 2 solo necesito el stock que quiero que cuando el usuario cargue lo datos del formulario de la tabla 1 automaticamente en la tabla 2 en el campo stock me muestre el id autoincremental de la tabla 1 osea si es el primer registro sea 1 y asi sucesivamente
  #8 (permalink)  
Antiguo 18/07/2015, 19:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema relacion de tablas y envio de datos

Primero: No repitas información entre posts. Es redundante, y toda redundancia termina generando ruido en el entendimiento. Y todo ruido en la información hace que uno ignore el mensaje.

En segundo lugar, y yendo al problema, son dos INSERT, uno detrás de otro. ¿CUál es exactamente el problema?
¿No sabes hacer más de un insert por script?
¿No sabes cómo recuperar el ID generado?

Lo primero, son dos INSERT. No debería representar un desafío hacer dos, si ya estás haciendo al menos uno exitoso.

Lo segundo se aclara yendo al manual de referencia: mysql_query()

Donde encontrarías esta función: mysql_insert_id()

donde encontrarías este ejemplo:
Código PHP:
Ver original
  1. <?php
  2. $enlace = mysql_connect('localhost', 'usuario_mysql', 'contraseña_mysql');
  3. if (!$enlace) {
  4.     die('No se pudo conectar: ' . mysql_error());
  5. }
  6.  
  7. mysql_query("INSERT INTO mitabla (producto) values ('kossu')");
  8. printf("El último registro insertado tiene el id %d\n", mysql_insert_id());
  9. ?>
La única diferencia sería que en ligar de imprimirlo para verlo, lo usas para el otro INSERT...


Posdata: ¿Qé se supone que representa esta línea, que veo en tu script, justo debajo del primer INSERT?:
Código PHP:
Ver original
  1. $a.$c="";

Para mí es algo misterioso...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 18/07/2015 a las 19:41
  #9 (permalink)  
Antiguo 18/07/2015, 19:35
 
Fecha de Ingreso: julio-2015
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: problema relacion de tablas y envio de datos

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Primero: No repitas información entre posts. Es redundante, y toda redundancia termina generando ruido en el entendimiento. Y todo ruido en la información hace que uno ignore el mensaje.

En segundo lugar, y yendo al problema, son dos INSERT, uno detrás de otro. ¿CUál es exactamente el problema?
¿No sabes hacer más de un insert por script?
¿No sabes cómo recuperar el ID generado?

Lo primero, son dos INSERT. No debería representar un desafío hacer dos, si ya estás haciendo al menos uno exitoso.

Lo segundo se aclara yendo al manual de referencia: [URL="http://php.net/manual/es/function.mysql-query.php"]mysql_query()[/URL]

Donde encontrarías esta función: [URL="http://php.net/manual/es/function.mysql-insert-id.php"]mysql_insert_id()[/URL]

donde encontrarías este ejemplo:
Código PHP:
Ver original
  1. <?php
  2. $enlace = mysql_connect('localhost', 'usuario_mysql', 'contraseña_mysql');
  3. if (!$enlace) {
  4.     die('No se pudo conectar: ' . mysql_error());
  5. }
  6.  
  7. mysql_query("INSERT INTO mitabla (producto) values ('kossu')");
  8. printf("El último registro insertado tiene el id %d\n", mysql_insert_id());
  9. ?>
La única diferencia sería que en ligar de imprimirlo para verlo, lo usas para el otro INSERT...


Posdata: ¿Qé se supone que representa esta línea, que veo en tu script, justo debajo del primer INSERT?:
Código PHP:
Ver original
  1. $a.$c="";

Para mí es algo misterioso...
modifique el codigo y no tengo problema estoy insertando en la segunda tabla el valor stock pero no envia a la tabla 1 el id solo manda el valor 0.

<HTML>
<HEAD>
<TITLE>New Document</TITLE>
</HEAD>
<BODY>

<?php
$nombrep=$_GET['nombrep'];
$unidadesp=$_GET['unidadesp'];
$codigop=$_GET['codigop'];
$marca=$_GET['marca'];
$descripcion=$_GET['descripcion'];
$costo=$_GET['costo'];
$stock=$_GET['stock'];
//conexion con el servidor
$conexion=mysql_connect('localhost','root','');
//conexion con base de datos
$b=mysql_select_db('farmacia',$conexion);
//agregar la informacion
$query=mysql_query("insert into productos(nombrep,unidadesp,codigop,marca,descripc ion,costo)value('$nombrep','$unidadesp','$codigop' ,'$marca','$descripcion','$costo')", $conexion);
$query=mysql_query("insert into inventario(stock)value('$stock')",$conexion);
?>
</BODY>
</HTML>

si lo hago al reves
y cargo todos los campos de la tabla 1 incluyendo el stock no manda nada a la tabla 2 por que no se como mandar el id a la otra tabla
  #10 (permalink)  
Antiguo 18/07/2015, 19:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema relacion de tablas y envio de datos

Finalmente, un script mas o menos adaptado de lo que tienes sería algo como eto:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $nombrep = $_GET['nombrep'];
  4. $unidadesp = $_GET['unidadesp'];
  5. $codigop = $_GET['codigop'];
  6. $marca = $_GET['marca'];
  7. $descripcion = $_GET['descripcion'];
  8. $costo = $_GET['costo'];
  9. $stock = $_GET['stock'];
  10. //conexion con el servidor
  11. $conexion = mysql_connect('localhost', 'root', '');
  12. //conexion con base de datos
  13. $b = mysql_select_db('farmacia', $conexion);
  14. //agregar la informacion
  15. $sql = "INSERT INTO productos(nombrep,";
  16. $sql .= " unidadesp,";
  17. $sql .= " codigop,";
  18. $sql .= " marca,";
  19. $sql .= " descripcion,";
  20. $sql .= " costo,";
  21. $sql .= " stock) ";
  22. $sql .= " VALUES ('$nombrep',";
  23. $sql .= " '$unidadesp',";
  24. $sql .= " '$codigop',";
  25. $sql .= " '$marca',";
  26. $sql .= " '$descripcion',";
  27. $sql .= " '$costo',";
  28. $sql .= " '$stock')";
  29. // Ejecutar la consulta o salir por error de BBDD
  30. $query = mysql_query($sql, $conexion) or die("Error al insertar el producto: ".  mysql_error());
  31. // Validar si hubo inserción
  32. if($query)
  33.     {
  34.     // Recuperar el ID generado.
  35.     $id = mysql_insert_id();
  36.     $sqlStock = "INSERT INTO inventario(";
  37.     $sqlStock .= " idproducto,";
  38.     $sqlStock .= " stock) ";
  39.     $sqlStock .= " VALUES(";
  40.     $sqlStock .= " '$idproducto',";
  41.     $sqlStock .= " '$stock')";
  42.     $queryInv = mysql_query($sqlStock, $conexion) or die("Error al insertar el inventario: ".  mysql_error());
  43.     if($queryInv)
  44.         {echo "Alta exitosa de producto e inventario.";
  45.         }
  46.     }
  47.     else
  48.         {echo "El producto no pudo insertarse";}
  49. ?>

Ahora bien, yo estoy suponiendo algo:
1) El ID de la tabla "inventario" es otra PK autoincremental, por lo que no debería ser necesario incluirlo en un alta.
2) El producto no existe, y no se está validando su existencia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 18/07/2015, 19:49
 
Fecha de Ingreso: julio-2015
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: problema relacion de tablas y envio de datos

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Finalmente, un script mas o menos adaptado de lo que tienes sería algo como eto:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $nombrep = $_GET['nombrep'];
  4. $unidadesp = $_GET['unidadesp'];
  5. $codigop = $_GET['codigop'];
  6. $marca = $_GET['marca'];
  7. $descripcion = $_GET['descripcion'];
  8. $costo = $_GET['costo'];
  9. $stock = $_GET['stock'];
  10. //conexion con el servidor
  11. $conexion = mysql_connect('localhost', 'root', '');
  12. //conexion con base de datos
  13. $b = mysql_select_db('farmacia', $conexion);
  14. //agregar la informacion
  15. $sql = "INSERT INTO productos(nombrep,";
  16. $sql .= " unidadesp,";
  17. $sql .= " codigop,";
  18. $sql .= " marca,";
  19. $sql .= " descripcion,";
  20. $sql .= " costo,";
  21. $sql .= " stock) ";
  22. $sql .= " VALUES ('$nombrep',";
  23. $sql .= " '$unidadesp',";
  24. $sql .= " '$codigop',";
  25. $sql .= " '$marca',";
  26. $sql .= " '$descripcion',";
  27. $sql .= " '$costo',";
  28. $sql .= " '$stock')";
  29. // Ejecutar la consulta o salir por error de BBDD
  30. $query = mysql_query($sql, $conexion) or die("Error al insertar el producto: ".  mysql_error());
  31. // Validar si hubo inserción
  32. if($query)
  33.     {
  34.     // Recuperar el ID generado.
  35.     $id = mysql_insert_id();
  36.     $sqlStock = "INSERT INTO inventario(";
  37.     $sqlStock .= " idproducto,";
  38.     $sqlStock .= " stock) ";
  39.     $sqlStock .= " VALUES(";
  40.     $sqlStock .= " '$idproducto',";
  41.     $sqlStock .= " '$stock')";
  42.     $queryInv = mysql_query($sqlStock, $conexion) or die("Error al insertar el inventario: ".  mysql_error());
  43.     if($queryInv)
  44.         {echo "Alta exitosa de producto e inventario.";
  45.         }
  46.     }
  47.     else
  48.         {echo "El producto no pudo insertarse";}
  49. ?>

Ahora bien, yo estoy suponiendo algo:
1) El ID de la tabla "inventario" es otra PK autoincremental, por lo que no debería ser necesario incluirlo en un alta.
2) El producto no existe, y no se está validando su existencia.
perfecto me corre y carga en ambas tabla pero el valor de la tabla 1 idinventario vale 0 y el de la tabla 2 idproducto vale 0 no manda el id entre si de ambias tablas
  #12 (permalink)  
Antiguo 18/07/2015, 19:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema relacion de tablas y envio de datos

Postea tu codigo.
Yo hice un ejemplo basado en el tuyo. No algo para que hagas copy+paste...

Por otro lado, ¿los campos idproducto e idinventario son realmente campos de tipo INT y además AUTO_INCREMENT?

Yo estoy asumiendo que es así, pero no veo el CREATE TABLE de tu tabla.

Por las dudas, postea el resultado de esto, luego de ejecutarlo en el phpMyadmin:

Código MySQL:
Ver original
  1. SHOW CREATE TABLE inventario;
Código MySQL:
Ver original
  1. SHOW CREATE TABLE productos;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 18/07/2015, 20:08
 
Fecha de Ingreso: julio-2015
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: problema relacion de tablas y envio de datos

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Postea tu codigo.
Yo hice un ejemplo basado en el tuyo. No algo para que hagas copy+paste...

Por otro lado, ¿los campos idproducto e idinventario son realmente campos de tipo INT y además AUTO_INCREMENT?

Yo estoy asumiendo que es así, pero no veo el CREATE TABLE de tu tabla.

Por las dudas, postea el resultado de esto, luego de ejecutarlo en el phpMyadmin:

Código MySQL:
Ver original
  1. SHOW CREATE TABLE inventario;
Código MySQL:
Ver original
  1. SHOW CREATE TABLE productos;
si en la tabla producto el valor idproducto es int autoincrement y el campo idinventario es index int
en la tabla inventario el campo idinventario es int autoincrement y el campo idproducto es index int

lo que necesito es que en ambas tablas intercambien digamos su autoincrement para saber en q posicion estan no se si me explico pero es que se me complica expresarlo ya que no soy todo un experto en php y es un trabajo que debo entregar y fuera de eso mi profesor no me ha explicado nada lo que se lo manejo por puros videos e internet(leyendo) agradezco su tiempo y esfuerzo por ayudarme
  #14 (permalink)  
Antiguo 18/07/2015, 20:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema relacion de tablas y envio de datos

Postea tu codigo.
Yo hice un ejemplo basado en el tuyo. No algo para que hagas copy+paste...

Postea además el resultado de esto, luego de ejecutarlo en el phpMyadmin:

Código MySQL:
Ver original
  1. SHOW CREATE TABLE inventario;
Código MySQL:
Ver original
  1. SHOW CREATE TABLE productos;

No me interesa lo que me digas, las descripciones siempre omiten detalles importantes. Necesito ver ambas cosas.

Y no sigas repitiendo información. Quier VER CODIGO.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 18/07/2015, 20:28
 
Fecha de Ingreso: julio-2015
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: problema relacion de tablas y envio de datos

el codigo que tengo es el que mostre por que ya no se que mas a hacer

este es sql

CREATE TABLE `inventario` (
`idinventario` int(8) NOT NULL auto_increment,
`idproducto` int(8) NOT NULL,
`stock` varchar(20) collate utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`idinventario`),
KEY `idproducto` (`idproducto`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=5 ;

-- Estructura de tabla para la tabla `productos`
--

CREATE TABLE `productos` (
`idproducto` int(8) NOT NULL auto_increment,
`idinventario` int(8) NOT NULL,
`nombrep` varchar(40) collate utf8_spanish2_ci NOT NULL,
`unidadesp` varchar(50) collate utf8_spanish2_ci NOT NULL,
`codigop` varchar(100) collate utf8_spanish2_ci NOT NULL,
`marca` varchar(100) collate utf8_spanish2_ci NOT NULL,
`descripcion` varchar(100) collate utf8_spanish2_ci NOT NULL,
`costo` varchar(15) collate utf8_spanish2_ci NOT NULL,
`stock` varchar(20) collate utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`idproducto`),
KEY `idinventario` (`idinventario`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=6 ;
  #16 (permalink)  
Antiguo 18/07/2015, 21:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema relacion de tablas y envio de datos

Las tablas tienen al menos un par de defectos:
1) El campo costo debería ser un DECIMAL(14,2), y el stock, si es la cantidad de unidades, debería ser un INT UNSIGNED.
2) No existe ninguna FK en esa tabla de inventario... existe un campo con el nombre que debería corresponder, pero no una FK.

Cita:
el codigo que tengo es el que mostre por que ya no se que mas a hacer
Ajá... ¿y donde está en este codigo, el uso de la función mysql_insert_id() que te indiqué?:
Código PHP:
Ver original
  1. <?php
  2. $nombrep=$_GET['nombrep'];
  3. $unidadesp=$_GET['unidadesp'];
  4. $codigop=$_GET['codigop'];
  5. $marca=$_GET['marca'];
  6. $descripcion=$_GET['descripcion'];
  7. $costo=$_GET['costo'];
  8. $stock=$_GET['stock'];
  9. //conexion con el servidor
  10. $conexion=mysql_connect('localhost','root','');
  11. //conexion con base de datos
  12. $b=mysql_select_db('farmacia',$conexion);
  13. //agregar la informacion
  14. $query=mysql_query("insert into productos(nombrep,unidadesp,codigop,marca,descripc ion,costo)value('$nombrep','$unidadesp','$codigop' ,'$marca','$descripcion','$costo')", $conexion);
  15. $query=mysql_query("insert into inventario(stock)value('$stock')",$conexion);
  16. ?>
Si no está, es porque no hiciste nada de lo que te dije. No analizaste el código que yo te posteeé, y no realizaste ninguna modificación.
1) No estás validando nada.
2) No estás recuperando el ID generado.
3) Ni siquiera estás comprobando si hubo resultado exitoso de inserciones antes de hacer la segunda...

Al menos deberías hacer algo como:
Código PHP:
Ver original
  1. {
  2. // insertar el inventario sólo si se insertó el producto
  3. ...
  4. }

Si quieres avanzar, al menos deberías probar lo que se te sugiere. De lo contrario estamos perdiendo el tiempo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: html, mysql, relacion, select, sql, tabla, 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 10:13.