Me pidió que en un formulario, rellenando una cantidad de campos con las actualizaciones, estos se sumaran a los puntos que ya tenía el usuario, hasta aquí todo bien.
El problema está en que el Update se ejecuta siempre, por lo tanto siempre está sumando los puntos que aparecen en el campo input del form.
El código que tengo es el siguiente:
Código PHP:
Ver original
$qy = "SELECT * FROM clasificaciones"; $pts = $rows['puntos']; $pj = $rows['partidos_jugados']; $pg = $rows['partidos_ganados']; $pp = $rows['partidos_perdidos']; $um = $rows['unidades_matadas']; $up = $rows['unidades_perdidas']; $ea = $rows['edifios_arrasados']; $ep = $rows['edificios_perdidos']; $ct = $rows['catillos_totales']; $rc = $rows['reliquias_capturadas']; $pa = $rows['poblacion_aldeanos']; $pt = $rows['puntuacion_total']; echo $pts; } $id = $_POST['id']; $ptos = $_POST['puntos'][$i]; $p_j = $_POST['pj'][$i]; $p_g = $_POST['pg'][$i]; $p_p = $_POST['pp'][$i]; $u_m = $_POST['um'][$i]; $u_p = $_POST['up'][$i]; $e_a = $_POST['ea'][$i]; $e_p = $_POST['ep'][$i]; $c_t = $_POST['ct'][$i]; $r_c = $_POST['rc'][$i]; $p_a = $_POST['pa'][$i]; $p_t = $_POST['pt'][$i]; echo "<br>"; $update = "UPDATE clasificaciones SET puntos=$pts+$ptos, partidos_jugados=$pj+$p_j, partidos_ganados=$pg+$p_g, partidos_perdidos=$pp+$p_p, unidades_matadas=$um+$u_m, unidades_perdidas=$up+$u_p, edifios_arrasados=$ea+$e_a, edificios_perdidos=$ep+$e_p, catillos_totales=$ct+$c_t, reliquias_capturadas=$rc+$r_c, poblacion_aldeanos=$pa+$p_a, puntuacion_total=$pt+$p_t WHERE id=$id[$i]"; echo $update; } }
Para realizar la suma lo que he hecho ha sido realizar una consulta a la BD, metiendo los resultados en variables que luego utilizo en el Update junto a las que vienen del formulario.
Más tarde me di cuenta de que en realidad la consulta da lo mismo, basta con poner en el Update SET puntos = puntos + $pts, es algo a modificar también, pero ahora me urge mucho más el tema de la suma.
Le he dado mil vueltas a la cabeza, y no encuentro la forma de solucionar esto.
Un saludo y gracias