Pregunta:
Fecha: 24-10-2016 13:42:01
(En Español)
¿Cómo puedo pasar un dato a un campo de una tabla desde otra tabla?, he intentado al menos lo mas básico con update, pero no logro cambiarlo ya que me cambia toda la columna, solo son dos tablas, **registro_donaciones y tipo_plantas**,
en **tipo_plantas** tambien hago un registro con campos como: nombredeplanta, totaldeplanta, cantidaddisponible,
es como un almacen de tipos de plantas, en el **registro_donaciones**, tengo campos como: nombredeusuario,numerodemision, tipodeplanta (en este campo a traves de un select-option de html, selecciono el tipo de planta que pide y que viene de la tabla plantas) y pedido, aqui esta el asunto, en pedido pongo un dato que debe grabarse tambien en la tabla **tipo_plantas** en la columna cantidaddisponible, cada que se pide un tipo de planta, en la tabla plantas debe actualizarse el campo de cantidaddisponible, es muy simple, solo para poner el contexto, he intentado con todo tipo de instrucciones UPDATE como esta:
Este es el codigo para mas claridad:
Los UPDATE que ahí se ven tmb comentados son las pruebas que he utilizado, ojala me puedan ayudar, saludos! Votos: 0 - Respuestas: 5 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
¿Cómo pasar datos de un campo de una tabla a otra?[No resuelta]
Hola buen día, tengo una pregunta acerca de mi proyecto, y como dice mi pregunta,¿Cómo puedo pasar un dato a un campo de una tabla desde otra tabla?, he intentado al menos lo mas básico con update, pero no logro cambiarlo ya que me cambia toda la columna, solo son dos tablas, **registro_donaciones y tipo_plantas**,
en **tipo_plantas** tambien hago un registro con campos como: nombredeplanta, totaldeplanta, cantidaddisponible,
es como un almacen de tipos de plantas, en el **registro_donaciones**, tengo campos como: nombredeusuario,numerodemision, tipodeplanta (en este campo a traves de un select-option de html, selecciono el tipo de planta que pide y que viene de la tabla plantas) y pedido, aqui esta el asunto, en pedido pongo un dato que debe grabarse tambien en la tabla **tipo_plantas** en la columna cantidaddisponible, cada que se pide un tipo de planta, en la tabla plantas debe actualizarse el campo de cantidaddisponible, es muy simple, solo para poner el contexto, he intentado con todo tipo de instrucciones UPDATE como esta:
UPDATE plantas, registro_donaciones SET plantas.cantidaddisponible=$cant WHERE plantas.id_plantas=?????
Este es el codigo para mas claridad:
$idd = $_POST["id_donaciones_txt"];
$nombre = $_POST["nombreBeneficiario_txt"];
$fecha = $_POST["fecsalida_txt"];
$remi = $_POST["numremision_txt"];
$cant = $_POST["cantidadplanta_txt"];
$tipo = $_POST["planta_txt"];
$consulta = "SELECT * FROM registro_donaciones WHERE id_donaciones='$idd'";
$ejecutar_consulta = mysqli_query($conexion, $consulta);
$num_regs = mysqli_num_rows($ejecutar_consulta);
if($num_regs == 0)
{
$consulta = "INSERT INTO registro_donaciones (nombreBeneficiario,fecsalida,numremision,cantidadplanta,tipoplanta) VALUES ('$nombre','$fecha','$remi',
'$cant','$tipo')";
Aqui me cambia toda la columna->//$consulta2 = "UPDATE tipo_plantas, registro_donaciones SET tipo_plantas.cant_disponible=$cant WHERE tipo_plantas.nombre_planta=registro_donaciones.tipoplanta";
$ejecutar_consulta = mysqli_query($conexion, $consulta);
$ejecutar_consulta2 = mysqli_query($conexion, $consulta2);
if($ejecutar_consulta)
$mensaje = "Se ha dado de alta el beneficiario <b>$nombre</b> :)";
else
$mensaje = "No se pudo dar de alta el beneficiario <b>$nombre</b> :(";
}
else
{
$mensaje = "No se pudo dar de alta al beneficiario con el nombre<b>$nombre</b> por que ya existe :/";
}Los UPDATE que ahí se ven tmb comentados son las pruebas que he utilizado, ojala me puedan ayudar, saludos! Votos: 0 - Respuestas: 5 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 24-10-2016 14:20:56 Primeramente Explícate bien lo que deseas realizar, segundo programas de manera lineal?. Votos: 0 - Link respuesta
-
Fecha: 24-10-2016 15:06:41 No sé de qué manera volverme a explicar con todo lo que he escrito, solo quiero al dar de alta en un registro, sacar un dato y ponerlo o actualizarlo en otra tabla al mismo tiempo del registro.
Si, soy nuevo en esto y programo de manera lineal. Saludos Votos: 0 - Link respuesta -
Fecha: 25-10-2016 10:57:20 pues te podría ayudar las variables globales , como el $_SESSION['NombreDeTuVariable'] pero no te olvides de iniciarlo con session_start; Votos: 0 - Link respuesta
-
Fecha: 28-10-2016 01:47:54 Si al insertar en una tabla quieres insertar algún dato en otra tabla si usas MySQL puedes usar un trigger para insertar en otra tabla de manera automática cuando insertes el primer registro. Votos: 1 - Link respuesta
-
Fecha: 28-10-2016 03:58:45 Buen día
mysqli_autocommit($conexion, FALSE); mysqli_begin_transaction($conexion, MYSQLI_TRANS_START_READ_WRITE); $consulta = "INSERT INTO registro_donaciones (nombreBeneficiario, fecsalida, numremision, cantidadplanta, tipoplanta) VALUES ('$nombre','$fecha','$remi', '$cant','$tipo')"; $ejecutar_consulta = mysqli_query($conexion, $consulta); $consulta2 = "UPDATE tipo_plantas SET cant_disponible=$cant WHERE nombre_planta='$tipo'"; $ejecutar_consulta2 = mysqli_query($conexion, $consulta2); if($ejecutar_consulta && $ejecutar_consulta2){ mysqli_commit($conexion); }else{ mysqli_rollback($conexion); }
Algo así haría
Fuentes:
http://php.net/manual/es/mysqli.begin-transaction.php
http://php.net/manual/es/mysqli.commit.php
http://php.net/manual/es/mysqli.rollback.php
http://php.net/manual/es/mysqli.autocommit.php
Saludos Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
