Ir al contenido


Foto

agregar desde otra tabla


  • Por favor identifícate para responder
7 respuestas en este tema

#1 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 14 enero 2013 - 11:21

hola estoy estudiando y he llegado a una consulta para agregar valores tomandolo desde otra tabla y el ejemplo que trae el  libro no agrega las lineas. y no me da error  por favor si alguien puede ayudarme gracias
este es el ejemplo
insert into lineas (Id, Producto, Cantidad, Subtotal) select compra.numero, compra.Producto, compra. Cantidad, (productos.Precio * compra.Cantidad) from compra, producto where producto.Id=compra.Producto  

  • 0

#2 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 14 enero 2013 - 11:30


SELECT compra.numero, compra.Producto, compra. Cantidad, (productos.Precio * compra.Cantidad) FROM compra, producto WHERE producto.Id=compra.Producto 


¿Te devuelve algún dato?

Saludos
  • 0

#3 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 14 enero 2013 - 02:31

hola fredycc bueno esa parte del codigo por separada funciona bien

  • 0

#4 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 14 enero 2013 - 03:12

hola mirad este es la pagina de  ejemplo original, el error lo da al agregar el valor de la variable $orden en la linea 23. Gracias

session_start();
if (isset($_SESSION["logged"]))
{
require_once("conexion.inc.php");
$conexion = new mysqli($servidor, $usuario, $passwd, $basedatos);
if (mysqli_connect_errno())
{
echo "Error al establecer la conexión con la base de datos: " . mysqli_connect_error();
exit();
}
$cliente = $_SESSION["usuario"];

//Crear nueva orden
$fecha1 = date("Y-m-d");
$fecha2 = date("Y-m-d", (mktime(0, 0, 0,date("m"), date("d")+2, date("Y"))));
$sql = "INSERT INTO ordenes (IdCliente, FechaOrden, FechaEnvio) VALUES ($cliente, '$fecha1', '$fecha2')";
if (!$conexion->query($sql))
throw new Exception("No se ha podido crear la nueva orden.");

$orden = $conexion->insert_id;

//Añadir las líneas de la orden
$sql = "INSERT INTO lineasorden (IdOrden, IdProducto, Cantidad, Subtotal) SELECT $orden, carritocompra.IdProducto,";
$sql.= "carritocompra.Cantidad, (productos.Precio * carritocompra.Cantidad) FROM productos, carritocompra ";
$sql .= "WHERE productos.IdProducto = carritocompra.IdProducto AND carritocompra.IdCarrito = $cliente";

if (!$conexion->query($sql))
throw new Exception("Error al crear las líneas de la orden.");

  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 15 enero 2013 - 07:56

INSERT INTO MiTabla1  (PriKey, Description)
      SELECT PriKey, Description
      FROM MiTabla2


Saludos.
  • 0

#6 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 15 enero 2013 - 04:01

hola enecumene no entiendo lo que me pones podrias explicarme por favor gracias
  • 0

#7 Delphius

Delphius

    Advanced Member

  • Moderador
  • PipPipPip
  • 6.295 mensajes
  • LocationArgentina

Escrito 16 enero 2013 - 07:00

Hola, yo de PHP estoy nulo pero observo algunas cosas:
1) La concatenación de la consulta entre la línea 23 y 24 carece de espacio. Es decir, la 23 no termina en un "algo " o bien la 24 no empieza con un " algo".
2) No es requisito pero se aconseja declarar la tablas en el orden en que aparecen. Si tu quieres mostrar Tabla2.Campo, Tabla3.Campo entonces en el FROM que sea Tabla2, Tabla3 y no Tabla3, Tabla2 como haces tu.
3) Estoy en dudas de si no se necesita hacer algo para con las variables $orden y $cliente. ¿Se puede mandar en el SQL así sin más? ¿No hace falta alguna comilla simple o doble? Es decir se puede hacer SELECT $tuvariable o no será algo como SELECT '$tuvariable'.

Imprime en pantalla la SQL resultante para ver si todo está en orden. Y también fíjate que en efecto existen los registros que cumplen la condición. ¿Ya probaste ejecutar la consulta desde algún administrador? Partamos de esto.

Saludos,
  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 16 enero 2013 - 10:58

hola enecumene no entiendo lo que me pones podrias explicarme por favor gracias


Pues la consulta lo que hace es exactamente lo que quieres, insertar datos de una tabla a otra, lo que te puse fue solo un ejemplo de su sintaxis.

Saludos.
  • 0