Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Ver si el articulo es igual y actualizar porcentaje

Estas en el tema de Ver si el articulo es igual y actualizar porcentaje en el foro de PHP en Foros del Web. Buenas tardes a todos, A ver si alguien me puede ayudar. Tengo el siguiente problema, necesito que al encontrar que las familias de los articulos ...
  #1 (permalink)  
Antiguo 08/03/2015, 09:32
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Ver si el articulo es igual y actualizar porcentaje

Buenas tardes a todos,

A ver si alguien me puede ayudar.
Tengo el siguiente problema, necesito que al encontrar que las familias de los articulos son iguales me caluque el valor del porcentaje y una vez hecho esto lo actualize.
Lo que he hecho hasta ahora es que me calcule el porcentaje y hasta ahi todo bien, el problema es que al actualizar me modifica solo el ultimo.
Dejo aquí el codigo por si alguien me puede ayudar.

Código PHP:
Ver original
  1. <?php
  2. include "conexion.php";
  3. $descripcion=  $_POST['descripcion'];
  4. $porcentaje=  $_POST['porcentaje'];
  5.  
  6. $consulta=("SELECT * FROM articulo WHERE  descripcion = '$descripcion'");
  7. $datos=mysql_query($consulta,$conexion);
  8. while($row = mysql_fetch_array($datos))
  9.        
  10.        
  11.  {
  12.  
  13.        
  14.          $descripcion=  $row['descripcion'];
  15.          $pvp=          $row['pvp'];
  16.        
  17.    
  18.          $aumentopor = $pvp * $porcentaje /100;
  19.          $aumentopor = $pvp + $aumentopor;
  20.          echo $descripcion;
  21.          
  22.          
  23.          echo $aumentopor;
  24.          
  25.             $actualizar=mysql_query("UPDATE articulo SET  pvp='".$aumentopor."'
  26.  
  27.                 WHERE descripcion='".$descripcion."'", $conexion);
  28.                
  29.                
  30. }
  31.  
  32.  
  33.  
  34.  
  35. if ($actualizar)
  36. {
  37.    echo "
  38.   <html>
  39.       <head>
  40.            <meta http-equiv='REFRESH' content='0 ; url=cambioprecio.php'>
  41.            <script>
  42.               alert ('Cambios de precio con exito!!!');
  43.            </script>
  44.         </head>
  45.     </html>
  46.     ";
  47. }  
  48. else
  49. {
  50.  echo "
  51.   <html>
  52.       <head>
  53.            <meta http-equiv='REFRESH' content='0 ; url=index.html'>
  54.            <script>
  55.               alert ('Error no se ha actualizado!!!');
  56.            </script>
  57.         </head>
  58.     </html>
  59.     ";
  60. }
  61.  
  62.    
  63.    
  64.    
  65.    
  66.    
  67.    
  68. ?>


saludos
  #2 (permalink)  
Antiguo 08/03/2015, 11:33
 
Fecha de Ingreso: enero-2015
Mensajes: 205
Antigüedad: 9 años, 2 meses
Puntos: 18
Respuesta: Ver si el articulo es igual y actualizar porcentaje

te actualizará solo uno, que es el que tiene $descripcion = descripcion.
Supongo que solo habrá uno, y por eso te actualizará solo uno.

Saluods
  #3 (permalink)  
Antiguo 08/03/2015, 11:53
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola,

Me actualiza el ultimo que lee, hay mas registros, pero no se como hacer para que me actualize todos los registros.
Si me puedes indicar como hacerlo te lo agradeceria.

Saludos
  #4 (permalink)  
Antiguo 08/03/2015, 12:23
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Cita:
Iniciado por marianomartelli Ver Mensaje
no se como hacer para que me actualize todos los registros...
Quita la condición y actualizarás toda la tabla.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 10/03/2015, 00:48
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola Alexis88,

Gracias por responder, al quitar la condición te refieres a la parte:

$consulta=("SELECT * FROM articulo WHERE descripcion = '$descripcion'");

El asunto es que descripcion es la familia a la que pertenecen ciertos articulos y lo que yo quiero hacer es cambiar precios aumentando un procentaje a ciertos productos y no todos es por eso que yo recibo en este programa lo que le envie del otro; y que seria la familia del articulo que quiero cambiar y el porcentaje.
lo que tendría que hacer este programa es ver si la categoria o familia del articulo es igual y solo modificar esos.

No se si me explique bien.

esperando que me puedan ayudar

Gracias y saludos
  #6 (permalink)  
Antiguo 10/03/2015, 08:33
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola a todos de nuevo,
Pienso que no me expliqué bien es por eso que vuelvo a escribir.
El programa que dejé aqui arriba me está funcionando bien cuando hace el calculo del porcentaje a las familias pongo un ejemplo:

He seleccionado la categoria frutas
y en esta categoria estan:
bananas 2,00 €
manzanas 1,49 €
naranjas 1,30 €

Y quiero aumentar un 2% a esta categoria

tendría que ser

bananas = 2.04
manzanas = 1.51
naranjas = 1.32


Bien en este programa que esta arriba, ve que las categoria sean iguales (descripcion), en este caso frutas y me hace el calculo del porcentaje que quiero aumentar.

$aumentopor = $pvp * $porcentaje /100;
$aumentopor = $pvp + $aumentopor;


he visto al poner un echo que los calculos lo hace bien por cada articulo.
El problema es que al ir a actualizar me pone el ultimo valor calculado y no los valores que deberian ser pos cada articulo. Por ejemplo, el valor calculado de las naranjas me lo pone en los otros dos articulos, bananas y manazanas mas o menos me arroja esto:


bananas = 1.32
manzanas = 1.32
naranjas = 1.32

A ver si ahora alguien me puede ayudar

de antemano Gracias y saludos
  #7 (permalink)  
Antiguo 10/03/2015, 11:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Me refería a la consulta de actualización, en la cual puedes hacer algo como esto:

Código MySQL:
Ver original
  1. UPDATE tabla SET campo = campo + (campo * 0.25) WHERE condición

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 11/03/2015, 07:42
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola Alexis88,

Gracias por tu aporte, he provado hacer lo que dices pero el problema sigue igual no ha cambiado nada me modifica en todos los articulos de la misma categoria, pero en todos me pone el ultimo valor que ha calculado.
Código PHP:
Ver original
  1. $actualizar=mysql_query("UPDATE articulo SET pvp = $pvp + ($pvp * $porcentaje / 100) WHERE descripcion='".$descripcion."'", $conexion);
  #9 (permalink)  
Antiguo 11/03/2015, 09:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Creo que eso sucede porque estás tomando el valor de $pvp cuando deberías de trabajar directamente con el campo de la tabla, así como en el ejemplo que te di.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 11/03/2015, 13:27
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola Alexis88,

Bien, ahora no salen iguales los numeros, he cambiado como dijiste el campo en este caso pvp, el problema que tengo ahora es el porcentaje que no lo hace bien.

Donde tu me has puesto 0.25 la persona tiene que poner el porcentaje que quiere aumentar el producto, es por eso que he puesto $aumentopor
Código PHP:
Ver original
  1. $porcentaje=  $_POST['porcentaje'];
  2. $aumentopor = $porcentaje /100;
  3.  
  4.     $actualizar=mysql_query("UPDATE articulo SET pvp = pvp + (pvp * $aumentopor / 100) WHERE descripcion='".$descripcion."'", $conexion);

POr ejemplo

valor 92,00 porcentaje a aumentar 4.10%
me tendría que dar 95,78 en cambio me da 117.09

La verdad que hace rato doy vueltas en el asunto y no logro descifrarlo a ver si me puedes dar una mano.

Muchas gracias de nuevo por tu paciencia
  #11 (permalink)  
Antiguo 11/03/2015, 13:56
Avatar de baccxus  
Fecha de Ingreso: mayo-2005
Ubicación: Panama city, Panama, Panama
Mensajes: 870
Antigüedad: 18 años, 10 meses
Puntos: 17
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Estás duplicando la división sobre 100:

Código:
$porcentaje=  $_POST['porcentaje'];
$aumentopor = $porcentaje /100; //esto sobra
 
    $actualizar=mysql_query("UPDATE articulo SET pvp = pvp + (pvp * $porcentaje / 100) WHERE descripcion='".$descripcion."'", $conexion);
Fíjate a ver si es esto.

Saludos,
__________________
Al final del día hablar es gratis, codificar no lo es
  #12 (permalink)  
Antiguo 11/03/2015, 14:00
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Dos cosas:
  1. Veo esto: $aumentopor = $porcentaje /100; y también esto: pvp * $aumentopor / 100. No sé si así es como pretendes hacerlo o quizá solo dividirás entre 100 al resultado de la multiplicación.
  2. Recuerda que el orden de los operadores siempre afecta. Los de multiplicación y división tienen la misma jerarquía, por lo que se ejecutan de izquierda a derecha, pudiendo obtener resultados diferentes a los deseados. Si piensas dividir al porcentaje y no al resultado de la multiplicación, encierra entre paréntesis a la multiplicación y divídela entre el 100.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #13 (permalink)  
Antiguo 11/03/2015, 14:04
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola,

Perdón lo había escrito mal antes


Código PHP:
Ver original
  1. $descripcion=  $_POST['descripcion'];
  2. $porcentaje=  $_POST['porcentaje'];
  3. $aumentopor = $porcentaje /100;
  4.  
  5.  
  6.  $actualizar=mysql_query("UPDATE articulo SET pvp = pvp + (pvp * $aumentopor) WHERE descripcion='".$descripcion."'", $conexion);

Es así como lo tengo y no funciona
  #14 (permalink)  
Antiguo 11/03/2015, 14:17
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola de nuevo,

Sigo probando, pero nada.
He hecho lo siguiente:

Código PHP:
Ver original
  1. $actualizar=mysql_query("UPDATE articulo SET pvp = pvp + (pvp * $porcentaje)/ 100  WHERE descripcion='".$descripcion."'", $conexion);

Sigo probando con estos valores pero nada
POr ejemplo

valor 92,00 porcentaje a aumentar 4.10%
me tendría que dar 95,78 en cambio me da 117.09
  #15 (permalink)  
Antiguo 11/03/2015, 14:47
Avatar de baccxus  
Fecha de Ingreso: mayo-2005
Ubicación: Panama city, Panama, Panama
Mensajes: 870
Antigüedad: 18 años, 10 meses
Puntos: 17
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Creo que hacia falta algo en tu script, para recoger la variable si lo ves tienes $descripción encerrada entre apostrofe, comillas y punto ('".__________."'), para indicar que es una variable que hay que recoger cosa que no has hecho con $aumentopor, lo demás está bien a mi parecer.

Código:
$descripcion=  $_POST['descripcion'];
$porcentaje=  $_POST['porcentaje'];
$aumentopor = $porcentaje /100;
 
 
 $actualizar=mysql_query("UPDATE articulo SET pvp = (pvp + (pvp * '".$aumentopor."')) WHERE descripcion='".$descripcion."'", $conexion);

Saludos
__________________
Al final del día hablar es gratis, codificar no lo es
  #16 (permalink)  
Antiguo 11/03/2015, 15:15
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola,

Sigo probando, esta vez he puesto el valor numerico en vez del valor que recibo de porcentaje, para ver si es por ahi el error pero nada.

Código PHP:
Ver original
  1. $actualizar=mysql_query("UPDATE articulo SET pvp = pvp + (pvp * 0.041) WHERE descripcion='".$descripcion."'", $conexion);

sigo con el error
valor 92,00 porcentaje a aumentar 4.10%
me tendría que dar 95,78 en cambio me da 117.09
  #17 (permalink)  
Antiguo 11/03/2015, 15:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Haz esto:

Código PHP:
Ver original
  1. echo "UPDATE articulo SET pvp = pvp + (pvp * 0.041) WHERE descripcion='".$descripcion."'";

Y muéstranos el resultado.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #18 (permalink)  
Antiguo 11/03/2015, 15:25
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Lo que he puesto arriba es el resultado

valor 92,00 porcentaje a aumentar 4.10%
me tendría que dar 95,78 en cambio me da 117.09
  #19 (permalink)  
Antiguo 11/03/2015, 15:29
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ver si el articulo es igual y actualizar porcentaje

No. Lo que te estoy pidiendo es el resultado de la impresión de la línea que te indiqué.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #20 (permalink)  
Antiguo 11/03/2015, 15:33
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Resultado del echo

UPDATE articulo SET pvp = pvp + (pvp * 0.041) WHERE descripcion='Cortina-sin-estuche-serie
  #21 (permalink)  
Antiguo 11/03/2015, 15:39
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

En la estructura de la tabla

pvp esta así

pvp float(10,2)

No se si esto pueda influir en el calculo
  #22 (permalink)  
Antiguo 11/03/2015, 15:57
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

He hecho esto antes del update y lo hace bien:

Código PHP:
Ver original
  1. $pvp=          $row['pvp'];
  2.          
  3.             echo $pvp;
  4.         echo "<br>";
  5.         $calculo = $pvp * $porcentaje / 100;
  6.         $pvp = $pvp + $calculo;
  7.         echo $calculo;
  8.         echo "<br>";
  9.         echo $pvp;
  10.         return;

92.00
3.772
95.772

El problema es cuando lo actualiza lo hace mal en vez de 95.772 actualiza 117.09
  #23 (permalink)  
Antiguo 11/03/2015, 16:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ver si el articulo es igual y actualizar porcentaje

En el phpMyAdmin, haz esto:

Código MySQL:
Ver original
  1. UPDATE articulo SET pvp = pvp + (pvp * 0.041) WHERE descripcion = 'Cortina-sin-estuche-serie'

Asegúrate de que el formato de los valores de la columna 'pvp' vaya de acuerdo al del porcentaje.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #24 (permalink)  
Antiguo 12/03/2015, 07:52
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola,

Al ejecutar en el phpMyAdmin

UPDATE articulo SET pvp = pvp + (pvp * 0.041) WHERE descripcion = 'Cortina-sin-estuche-serie'

No da errores y hace bien el cálculo osea actualiza a 95,77

No entiendo donde está el error
  #25 (permalink)  
Antiguo 12/03/2015, 07:59
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Si es así, te toca revisar con mucha calma tu código porque definitivamente es ahí en donde está el error.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #26 (permalink)  
Antiguo 12/03/2015, 08:08
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Ver si el articulo es igual y actualizar porcentaje

Hola,

dejo de nuevo el programa he agregado un echo en las variables después del SELECT para ver que si hace bien el calculo, y efectivamente hasta ahi hace bien el calculo el problema es al actualizar que actualiza otro valor.

Código PHP:
Ver original
  1. <?php
  2. include "conexion.php";
  3. $descripcion=  $_POST['descripcion'];
  4. $porcentaje=  $_POST['porcentaje'];
  5. $aumentopor = $porcentaje /100;
  6.  
  7. $consulta=("SELECT * FROM articulo WHERE  descripcion = '$descripcion'");
  8. $datos=mysql_query($consulta,$conexion);
  9. while($row = mysql_fetch_array($datos))
  10.        
  11.        
  12.  {
  13.  
  14.        
  15.          $descripcion=  $row['descripcion'];
  16.          $pvp=          $row['pvp'];
  17.          
  18.          $calculo = $pvp * $aumentopor;
  19.          $calculo = $pvp + $calculo;
  20.          echo $calculo;
  21.          return;
  22.        
  23.                
  24.                
  25.        $actualizar=mysql_query("UPDATE articulo SET pvp = pvp + (pvp * $aumentopor)  WHERE descripcion='".$descripcion."'", $conexion);
  26.        
  27.      
  28.  
  29.                
  30.                
  31. }
  32.  
  33.  
  34.  
  35.  
  36. if ($actualizar)
  37. {
  38.    echo "
  39.   <html>
  40.       <head>
  41.            <meta http-equiv='REFRESH' content='0 ; url=cambioprecio.php'>
  42.            <script>
  43.               alert ('Cambios de precio con exito!!!');
  44.            </script>
  45.         </head>
  46.     </html>
  47.     ";
  48. }  
  49. else
  50. {
  51.  echo "
  52.   <html>
  53.       <head>
  54.            <meta http-equiv='REFRESH' content='0 ; url=index.html'>
  55.            <script>
  56.               alert ('Error no se ha actualizado!!!');
  57.            </script>
  58.         </head>
  59.     </html>
  60.     ";
  61. }
  62.  
  63.    
  64.    
  65.    
  66.    
  67.    
  68.    
  69. ?>

Etiquetas: html, igual, mysql, porcentaje, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:00.