Comunidad de diseño web y desarrollo en internet online

Problema con php y Mysql

Citar            
MensajeEscrito el 14 Jul 2009 06:08 pm
Hola buenas tardes

Soy nueva en este foro mi nombre es Olga y soy estudiante del licenciatura en Informática Administrativa:
Estoy haciendo un trabajo con php y Mysql este se trata sobre dar altas , bajas y consultas de productos, todo esto ya lo he hecho...ahora mi problema es que por ejemplo cuando inserto un producto repetido me inserta otro registro y yo lo que quiero es que lo sume a un campo que se llama cantidad...
tengo algo asi:
modelo cantidad material submaterial
789 2 charol liso
456 3 charol ponchada
789 5 charol liso

y bueno lo que yo quiero es que quede así:
modelo cantidad material submaterial
789 7 charol liso
456 3 charol ponchada

Espero haberme explicado.. y bueno mi codigo es ete:
$consulta="select * from producto where modelo=".$modelo;
$resultado=mysql_query($consulta) or die (mysql_error());
if (mysql_num_rows($resultado)>0)
{
"SELECT SUM(cantidad) AS $cantidad FROM `producto` WHERE `modelo` = '$modelo'";
//$consulta="SELECT SUM( cantidad ), $cantidad FROM producto GROUP BY cantidad";
echo"Exite al menos un registro";
} else {
mysql_query("insert into producto (modelo,cantidad,material,submaterial) values ('$modelo','$cantidad','$material','$submaterial')");
echo"Registro insertado";

}
pero no función la suma de la cantidad.. de antemano..les agradeceré cualquier ayuda y aportación
muchas gracias.... :P ..... :oops: ......

Por olga88

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Jul 2009 09:51 pm
en principio tu consulta esta mal ya que no se puede sumar un valor externo en la funcion sum y en un select

sum es para sumar los valores de un campo en una tabla

por ejemplo select sum(cantidad) from productos where m=10

te va asumar las cantidades de los productos donde m=10 y te regresara el resultado.

para solucionar tu problema requieres tomar la cantidad actual del producto que requieres, esto lo haces con una consulta en la base de datos del tipo SELECT CANTIDAD FROM PRODUCTOS WHERE M=10

el resultado lo almacenas en una variable php sumas esta variable con el nuevo valor.

y ya que tengas el resultado de esta suma lo que haces es modificar el registro con la nueva cantidad con la siguiente sentencia

UPDATE PRODUCTOS SET CANTIDAD=$TOTALSUMA WHERE M=10

es la unica manera que se me ocurre por el momento, ya que no recuerdo cual es la funcion de mysql para sumar cantidades de este modo

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jul 2009 09:54 pm
otra cosa en tu codigo se esta insertando el valor por que nunca encuentre el valor de mysql_num_rows($resultado) ya que te hace falta cachar el arreglo que debuelve la consulta esto se hace con la funcion mysql_fetch de php

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jul 2009 12:53 am
hola.. te agradesco muchisimo tu respuesta...voy a probar lo que me dices...esque yo no sabia esto que me estas que sum solo se utiliza para sumar campos de la tabla .

muchas gracias... :P

Por olga88

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.