Foros del Web » Programando para Internet » PHP »

Problema Suma

Estas en el tema de Problema Suma en el foro de PHP en Foros del Web. Hola tengo un problema. Tengo 2 Tablas ugml_alliance : id|ownerid|ally_points y ugml_users : id|ally_id|fleet_total ( puntos de cada usuario) Lo que necesito es que los ...
  #1 (permalink)  
Antiguo 09/02/2010, 12:57
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Problema Suma

Hola tengo un problema.

Tengo 2 Tablas

ugml_alliance : id|ownerid|ally_points

y

ugml_users : id|ally_id|fleet_total ( puntos de cada usuario)

Lo que necesito es que los puntos de todos los usuarios que pertenecen a una ally se sumen y se introduzcan en el campo ally_points de la tabla (ugml_alliance)

Lo he intentado de esta manera pero me da como resultado "0"

A ver si alguien me hecha una mano y me dice donde esta el problema y como solucionarlo.


Código PHP:
$allyid=mysql_query("SELECT id FROM ugml_alliance WHERE (`ally_owner`='{$user['id']}')");
$consultaallyid=mysql_fetch_array($allyid);
$allyid2=$consultaallyid['id'];

$puntfleet=mysql_query("SELECT SUM(fleet_total) FROM ugml_users WHERE `ally_id`='$allyid2'");
$consultaft=mysql_fetch_array($puntfleet);

mysql_query("UPDATE `ugml_alliance` SET `ally_points`='$consultaft' WHERE id ='$allyid2'"); 

Como podreis observar unicamente al logearse el Lider de la Allianza se actualizan los puntos.

A ver si me hechais una mano.


Gracias expertos.
  #2 (permalink)  
Antiguo 09/02/2010, 13:03
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema Suma

He probado este otro modo , para que cualquier usuario perteneciente a la ally , al logearse se actualizen los puntos , pero me da el mismo resultado "0"

Código PHP:
$puntfleet=mysql_query("SELECT SUM(fleet_total) FROM ugml_users WHERE ally_id={$user['ally_id']}");
$consultaft=mysql_fetch_array($puntfleet);

mysql_query("UPDATE `ugml_alliance` SET `ally_points`='$consultaft' WHERE id ={$user['ally_id']}"); 
  #3 (permalink)  
Antiguo 09/02/2010, 13:42
Avatar de morior  
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 15 años, 3 meses
Puntos: 12
Respuesta: Problema Suma

Te pongo un código cutre y rápido de cómo sumaría puntos:

Código PHP:
$res=mysql_query("SELECT campo_a_sumar
        FROM  tabla
        WHERE id='$id'"
)
            or die(
mysql_error());
    while (
$row=mysql_fetch_array($res)){
        
extract($row);

        
$total += $campo_a_sumar;

        }

mysql_query("UPDATE tutabla SET campo='$total' WHERE (tu condicion)'")
            or die(
mysql_error()); 
¿Es algo así lo que necesitas?
__________________
Juego de navegador online
  #4 (permalink)  
Antiguo 09/02/2010, 14:02
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: Problema Suma

Esto no puede funcionar:
Código PHP:
Ver original
  1. $consultaft=mysql_fetch_array($puntfleet);
  2.  
  3. mysql_query("UPDATE `ugml_alliance` SET `ally_points`='$consultaft' WHERE id ='$allyid2'");
Tu error está en la última línea, a ver si lo ves tú:
Código PHP:
Ver original
  1. `ally_points`='$consultaft'
Por cierto, si ally_points es un campo numérico (int) quítale las comillas. Llegará así:

Código PHP:
Ver original
  1. ally_points=$consultaft
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #5 (permalink)  
Antiguo 09/02/2010, 19:44
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 15 años, 4 meses
Puntos: 27
Respuesta: Problema Suma

Me parece que el error esta en el segundo query

Código PHP:
#inicio
$allyid=mysql_query("SELECT id FROM ugml_alliance WHERE ally_owner='".$user['id']."' ");
$consultaallyid=mysql_fetch_array($allyid);
$allyid2=$consultaallyid['id'];

$puntfleet=mysql_query("SELECT SUM(fleet_total) as suma FROM ugml_users WHERE ally_id='".$allyid2."' ");
$consultaft=mysql_fetch_array($puntfleet);

mysql_query("UPDATE ugml_alliance SET ally_points='".$consultaft['suma']."' WHERE id ='".$allyid2."' ");  

#fin 
espero que te sirva.. )
  #6 (permalink)  
Antiguo 10/02/2010, 04:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema Suma

Gracias a todos chicos al final lo he ido probando , sacando los resultados con un "echo" y he conseguido el resultado deseado quedando asi:

Código PHP:
$allyid=mysql_query("SELECT id FROM ugml_alliance WHERE (`id`='{$user['ally_id']}')");
$consultaallyid=mysql_fetch_array($allyid);
$allyid2=$consultaallyid['id'];

$puntfleet=mysql_query("SELECT SUM(fleet_total) as totalpuntos FROM ugml_users WHERE ally_id='$allyid2'");
$allypunts=mysql_fetch_array($puntfleet);
$allypts=$allypunts['totalpuntos'];

mysql_query("UPDATE `ugml_alliance` SET `ally_points`='$allypts' WHERE id ='$allyid2'"); 

si alguien tiene otra forma mas corta de hacerlo para no cargar demasiado la pagina con funciones se lo agradeceria aunque asi funciona bien

Etiquetas: suma
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 02:16.