Foros del Web » Programando para Internet » PHP »

Actualizar tabla

Estas en el tema de Actualizar tabla en el foro de PHP en Foros del Web. Hola, Tengo la siguiente tabla que se llama gastos y los campos 01- 02- etc son los meses Debajo de descripcion estan las categorias descripcion ...
  #1 (permalink)  
Antiguo 03/02/2014, 02:24
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Actualizar tabla

Hola,

Tengo la siguiente tabla que se llama gastos
y los campos 01- 02- etc son los meses
Debajo de descripcion estan las categorias

descripcion 01 02 03 04...
Telefono 0 0 0 0
Agua
Gas

Necesito actualizar los campos por mes y segun la descripcion
De la tabla documentos
Id
Numero
Fechareg
Fechadoc
Categoría
Descripción
Neto
Iva
total

He separado la fechadoc

Código PHP:
Ver original
  1. $fecha = explode("-", $fechadoc);
  2. $ano = $fecha[0];
  3. $mes = $fecha[1];
  4. $dia = $fecha[2];

y debo comparar categoria con descripcion porque en categoria tengo los mismos campos que descripcion.
Necesito introducir el valor neto segun la categoria en el mes que corresponda y si vienen dos valores del mismo mes que corresponden a la misma categoria por ejemplo telefono que lo sume.

Si me pueden indicar como hacerlo,

Muchas gracias
  #2 (permalink)  
Antiguo 04/02/2014, 13:17
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: Actualizar tabla

Buenas tardes.

Este foro no es un "yo pido" , "los demás lo hacen".

Intenta desarrollar por tí mismo el código( mas que separar la fecha) y si te van surgiendo errores concretos o dudas especificas consúltalas que seguro te podremos orientar pero NO resolverte tus necesidades.

Un Saludo
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #3 (permalink)  
Antiguo 04/02/2014, 13:57
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla

Hola,

Quizás no me explique bien yo escribí "si me podían indicar como hacerlo" no que me lo hicieran

saludos
  #4 (permalink)  
Antiguo 11/02/2014, 23:19
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla

Hola,

He hecho lo siguiente:
He cambiado el nombre descripción por categoria en la tabla de gastos para dejarlos igual a la tabla documentos.

categoria 01 02 03 04...
Telefono 0 0 0 0
Agua
Gas

Bueno en la tabla documentos graba perfecto el problema es que no me actualiza nada en la tabla gastos.
Preciso que en la tabla gastos debe comparar si la categoria es igual por ejemplo Telefono buscar el mes que corresponde si no hay nada ingresar pero si hay algo hay que sumar.

Código PHP:
Ver original
  1. <?php
  2.  
  3.    $numero       = $_POST['numero'];
  4.    $fechareg     = $_POST['fechareg'];
  5.    $fechadoc     = $_POST['fechadoc'];
  6.    $categoria    = $_POST['categorias'];
  7.    $descripcion  = $_POST['descripcion'];
  8.    $neto         = $_POST['neto'];
  9.    $iva          = $_POST['iva'];
  10.    $total        = $_POST['total'];
  11.    
  12.  
  13.  
  14. $fecha = explode("-", $fechadoc);
  15. $ano = $fecha[0];
  16. $mes = $fecha[1];
  17. $dia = $fecha[2];
  18.  
  19.  
  20.  
  21.    
  22.    $reqlen  = strlen($numero) * strlen($fechareg) * strlen($categoria) * strlen($descripcion) *
  23.     strlen ($total);
  24.              
  25.     if ($reqlen > 0) {
  26.        
  27.            include ("conexion.php");
  28.          
  29.  
  30.          
  31.            mysql_query("INSERT INTO documentos (numero, fechareg, fechadoc,   categoria, descripcion, neto, iva, total)    VALUES('$numero', '$fechareg', '$fechadoc', '$categoria','$descripcion', '$neto', '$iva', '$total' )");
  32.                        
  33. // hacemos la consulta.....
  34.     $sql ="select * from gastos WHERE categoria = '".$categoria."'";
  35.    
  36.      $rs = mysql_query($sql);
  37.                    $file = mysql_fetch_array($rs);
  38.                       // mysql_fetch_array crear un array con todos los datos, pero nos interesa
  39.                       // los gastos del mes seleccionado
  40.                       $gasto_acumulado = $file[$mes];
  41.                       echo $file[$mes];
  42.                       if($gasto_acumulado == 0){
  43.                 // si es 0, instertamos ya que no hay nada interior
  44.                
  45.             $sql="UPDATE gastos SET '".$mes."' = '".$neto."' WHERE categoria ='".$categoria."' LIMIT 1";
  46.             mysql_query($sql);
  47.             // prueba
  48.        
  49. }else{
  50.     $gasto_total = $gasto_acumulado+$neto;
  51.     // sumamos los dos
  52.     $sql="UPDATE gastos SET ".$mes."='".$gasto_total."' WHERE categoria = '".$categoria."' LIMIT 1";
  53.     mysql_query($sql);
  54.              }
  55.                      
  56.  
  57.  
  58.                        
  59.                         echo '<script language = javascript>
  60.                            alert("Registro ingresado correctamente.. presione enter para seguir.")
  61.                            self.location = "documentos.php"
  62.                             </script>';
  63.                        
  64.                
  65.            
  66.             }
  67.    
  68.  
  69.    ?>

Como dije antes el problema es que no lo actualiza he probado para seguir el programa poniendo echo en varias partes he visto que entra segun el if pero no actualiza.
A ver si alguien me puede ayudar

Gracias y saludos
  #5 (permalink)  
Antiguo 12/02/2014, 09:09
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar tabla

<saludo>
Uhm, a ver, dos cosas.
1. El campo en la tabla gastos se llama a la final descripcion o categoria?
Lo pregunto por el select que se hace a la tabla, veo que es categoria,
pero en el post inicial dijiste que el campo era descripcion.
2. Que pasa cuando no hay un registro en la tabla gastos correspondiente
a la categoría? No se debería insertar?
Pues solo haces updates, pero, si no hay data para actualizar... pues...
Así que revisa y nos comentas, suerte con eso!
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 12/02/2014, 09:51
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla

Hola,
1.-Si es verdad al inicio el campo se llamaba descripcion ahora categoria lo hice así para evitar confusión al hacer la pregunta.
2.- Si, por ejemplo llega un categoria que no existe en la tabla gastos no tiene que hacer nada solo necesito esas categorias que están en la tabla gastos.
3.-data para actualizar a que te refieres?
He estado haciendo la siguiente prueba ingreso la fecha
2014-01-01 hago un echo y el mes lo muestra bien después he probado a ver si entra en el if y va bien entra en el if osea categoria bien. ahora el valor que hay en $neto me lo tiene que poner en el mes que corresponda en este caso por ejemplo seria la fila Telefono y la columna 01 correspondiente al mes de enero.y como $mes contiene 01 como hago para que lo actualice

Se que tengo un error pero no lo encuentro porfavor necesito ayuda.

Gracias y saludos
  #7 (permalink)  
Antiguo 12/02/2014, 09:53
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla

Olvidaba decir que los valores en la tabla gastos estan todos en 0 es por eso que se pregunta si es igual a cero hace una cosa y si no suma el valor.
  #8 (permalink)  
Antiguo 12/02/2014, 11:21
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar tabla


<saludo>
Uhm, en ese caso, cambia las comillas del campo del mes, de esta (') a esta (`)
</saludo>

__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 12/02/2014, 12:28
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla

Hola,
Gracias por responder
He cambiado las comillas simples por dobles como has dicho, pero nada.
  #10 (permalink)  
Antiguo 12/02/2014, 12:51
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar tabla

<saludo>
Pues yo hice ese cambio y funcionó.
Preguntas:
1. Versión de php
2. Versión de mysql
3. Si ejecutas los updates del código directamente en mysql, se realizan correctamente?
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #11 (permalink)  
Antiguo 12/02/2014, 13:00
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla

Perdona, podrías poner la comilla que has puesto y como en esta parte ya que cuando lo veo en lo que me mandaste no se entiende bien

Código PHP:
Ver original
  1. $sql="UPDATE gastos SET '".$mes."' = '".$neto."' WHERE categoria ='".$categoria."' LIMIT 1";
  #12 (permalink)  
Antiguo 12/02/2014, 13:44
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla

Version PHP 5.3
Version Mysql 5.5
Actualizar desde mysql no lo se hacer
  #13 (permalink)  
Antiguo 12/02/2014, 13:49
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar tabla

<saludo>
Código php:
Ver original
  1. // if
  2. $sql="UPDATE gastos SET `".$mes."` = '".$neto."' WHERE categoria ='".$categoria."' LIMIT 1";
  3. // else
  4. $sql="UPDATE gastos SET `".$mes."`='".$gasto_total."' WHERE categoria = '".$categoria."' LIMIT 1";
En cuanto a actualizar desde mysql, ok, y desde phpmyadmin?
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #14 (permalink)  
Antiguo 12/02/2014, 14:08
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla

Hola,

He probado lo que me enviaste y ahora si funciona ;).... era ese tipo de comilla me puedes indicar donde puedo leer información acerca de esta yo conocía solo las comillas simples y dobles.
Muchas gracias por todo
  #15 (permalink)  
Antiguo 12/02/2014, 14:16
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Actualizar tabla

<saludo>
Pues en ese caso, revisa este link
</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: fecha, tabla
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 08:08.