Código:
El cual es llamado desde php en la siguiente forma:CREATE DEFINER=`root`@`localhost` PROCEDURE `PA_Venta`(xIdcliente INT, xIdempleados varchar(3), xIdproducto varchar(6), xcantidad Numeric(18,2), xPrecioUnit Numeric (18,2),xId_color int) BEGIN declare idVenta int; /* idventas tomara el ultimo valor auto*/ Insert into ventas(fecha,Idcliente,Idempleados,Idproducto,cantidad,PrecioUnit,total,Id_color) values(current_date(),xIdcliente,xIdempleados,xIdproducto,xcantidad,xPrecioUnit,xcantidad*xPrecioUnit,xId_color); /* Ahora restando el stock*/ update producto set stock = (stock - xcantidad) where xIdProducto = Idproducto; /* Mostrando el Resumen de venta */ set idVenta = (SELECT LAST_INSERT_ID() FROM ventas limit 1); /*capturando el ultimo valor de autoincrement*/ Select v.Idventas, v.Fecha, c.nombre,e.nombre, p.Descripcion,v.Cantidad, v.PrecioUnit,v.total,co.Descripcion from ventas v,empleados e, clientes c, producto p, color co where (v.Idventas = idVenta) AND (c.Idcliente = v.Idcliente) and (v.Idempleados = e.Idempleados) and (p.Idproducto = v.Idproducto) and (v.Id_color = co.Id_color ); END
Código:
y me vota el siguiente error:$resultado = mysql_query("call PA_Venta('$xIdcliente','$xIdempleados', '$xIdproducto', '$xcantidad', '$xPrecioUnit', '$xId_color')") or die(mysql_error()); if ($row = mysql_fetch_array($resultado)){ /* var_dump($row, $resultado);*/ echo "<table border = '1'>\n"; echo "<tr><td>Numero de Venta</td><td>Fecha</td><td>Cliente</td><td>Empleado</td><td>Producto</td><td>Cantidad</td><td>Precio Unitario</td><td>Total</td><td>Color</td></tr> \n"; do { echo "<tr><td>".$row['Idventas']."</td><td>".$row['fecha']."</td><td>".$row[2]."</td><td>".$row[3]."</td><td>".$row[4]." </td><td>".$row[5]."</td><td>".$row[6]."</td><td>".$row[7]."</td><td>".$row[8]."</td></tr> \n"; } while ($row = mysql_fetch_array($resultado)); /* aca padeci como nunca por no darme cuenta que es mysql_fetch_array.*/ echo "</table>\n"; } else { echo "¡No se ha encontrado ningún registro!";}
PROCEDURE tienda.PA_Venta can't return a result set in the given context
Ahora, el error al parecer es en el procedimiento almacenado por ese motivo lo puse aca el post.
La verdad no se porque no me funcion, hize la mismo consulta desde php en el mismo php y funciona.