PREGUNTAS DE PROGRAMACION

Busca Preguntas

Consulta con PHP y MySQL?


carlonchod@hotmail.com - 2007-07-22 21:31:56 - Programming Design

Tengo un Formulario para rescatar dos valores, "codigo material" y "cantidad" lo que necesito es ir agregando cantidades a lo que esta en la base de datos. por el metodo post tengo el siguiente codigo PHP <?php include("conectar_materiales.php"); $agregar = $_POST[txt_cantidad]; $p_txt_cod_material=$_POST[txt_cod_material]; $consulta = "update materiales set stock = stock + ". $agregar ." where mat_cod =$p_txt_cod_material"; $resultado = mysql_query($consulta,$conectar) mysql_close ($conectar); echo "DATOS ACTUALIZADOS <br><a href='stock_de_materiales.php'>VOLVER</a><br>"; ?> pero mi problema es que aveces me suma doble. ejemplo si en la base de datos tengo 100 unidades del codigo xxx y le quiero agregar 20, deberia quedar actualizado a 120, pero me guarda 140. que puedo hacer?? mi correo es carlonchod@hotmail.com gracias

Mejor Respuesta:

Saludos, en primer lugar tu consulta de actualizacion no esta optimizada y además de eso tienes un fallo de seguridad greve del cual podrias ser vicitima de inyeccion SQL, ya que no es recomendable agregar espacios como este: ".$agregar." en una consulta SQL, es mas ni siquiera es necesrio concatenar ya que mientras que una consulta SQL esté dentro del <?php ?> tu varible será interpretada. Ejemplo: Una consulta de ese tipo deberia tener una estructura similar a esta: include("conexion.php"); $enlace=conectar(); $cant=$_POST["txt_cantidad"]; $cod_mat=$_POST["txt_codigo"]; //RECUERDA ENCERRAR TU CONSULTA EN UN IF PARA SER MAS PRECISO if($actualizar=mysql_query("UPDATE materiales SET stock = $cant WHERE mat_cod = '$cod_mat' ",$enlace){ printf("<script lang=javascript>alert('Se ha actualizado la tabla correctamente') </script>"); printf("<script lang=javascript>document.location.href='url_destino.php' </script>"); }else{ printf("<script lang=javascript>alert('Ha ocurrido un fallo en la actualizacion de la tabla') </script>"); printf("<script lang=javascript>document.location.href='url_destino.php' </script>"); } mysql_free_result($actualizar);

Respuestas:

Cat 9 - 2007-07-22 21:54:21
Si te suma doble es que: 1) Estás corriendo 2 veces la misma consulta Update. 2) Tu consulta update tiene mal el parametro. 3) Tu base de datos ya tiene un 120 guardado y no un 100. Para evitar el doble clickl sobre un botón, se suele deshabilitarle al hacer el click, para evitar dobles movimientos como el que reportas.

fr@nklevel - 2007-07-23 05:17:10
Saludos, en primer lugar tu consulta de actualizacion no esta optimizada y además de eso tienes un fallo de seguridad greve del cual podrias ser vicitima de inyeccion SQL, ya que no es recomendable agregar espacios como este: ".$agregar." en una consulta SQL, es mas ni siquiera es necesrio concatenar ya que mientras que una consulta SQL esté dentro del <?php ?> tu varible será interpretada. Ejemplo: Una consulta de ese tipo deberia tener una estructura similar a esta: include("conexion.php"); $enlace=conectar(); $cant=$_POST["txt_cantidad"]; $cod_mat=$_POST["txt_codigo"]; //RECUERDA ENCERRAR TU CONSULTA EN UN IF PARA SER MAS PRECISO if($actualizar=mysql_query("UPDATE materiales SET stock = $cant WHERE mat_cod = '$cod_mat' ",$enlace){ printf("<script lang=javascript>alert('Se ha actualizado la tabla correctamente') </script>"); printf("<script lang=javascript>document.location.href='url_destino.php' </script>"); }else{ printf("<script lang=javascript>alert('Ha ocurrido un fallo en la actualizacion de la tabla') </script>"); printf("<script lang=javascript>document.location.href='url_destino.php' </script>"); } mysql_free_result($actualizar);

Responde sobre Consulta con PHP y MySQL?
map google sitemap
© 2007 proginternet.com
Powered by yahoo answer
Consulta con PHP y MySQL?