Потому что накапливаются sumatorias в цикле for, что должны появляться по отдельности в PHP?

Я обладаю таблицей, которая производит реестры с различной стоимостью, для каждого реестра будет так называемая стоимость atenuante который представляет выбор, сделанный с checkbox.

Эта стоимость сохраняется как одна string de la forma1-2 и в другом таблица у меня есть стоимость, которая соответствует каждому выбору, будучи чем-то как:

Atenuante: 1 | Valor: 0.2
Atenuante: 2 | Valor: 0.15
Atenuante: 3 | Valor: 0.25

В системе я делаю один explode чтобы отделять string atenuante так: 1 y 2 и потом искать Вашу стоимость в другой таблице. Чтобы получать sumatoria, чтобы потом показывать Вашу стоимость:

1= 0.2 | 2= 0.15 | total = 0.35

Случается, что меня вычисляет хорошо sumatoria, но взятие это общее количество и потом он это складывает с общим количеством следующего реестра, нечто похожим:

Registro 1 | total= 0.35
Registro 2 | total= (total real= 0.25) muestra: 0.60
Registro 3 | total= (total real= 0.36) muestra: 0.96
Registro 4 | total= (total real= 0.10) muestra: 1.06

Я хотел бы, чтобы каждая стоимость была вычислена по отдельности и так, он появится, не накапливаясь:

Registro 1 | total= 0.35
Registro 2 | total= 0.25
Registro 3 | total= 0.36
Registro 4 | total= 0.10

Это код PHP:

<?php
$query = "SELECT c_atenuante FROM sancionados";
$resultado = mysql_query($query) OR DIE("La consulta $query fallo" . mysql_error());

while ($registros = mysql_fetch_array($resultado)) //SI EXISTEN REGISTROS

    {
    $atenuantes = $registros["c_atenuante"];
    echo "<td>" . $atenuantes . "</td>";
    $atenuantes_explode = explode("-", $atenuantes);
    $cantidad_atenuantes = count($atenuantes_explode);
    for ($i = 0; $i < $cantidad_atenuantes; $i++)
        {
        $atenuante_seleccionado = $atenuantes_explode[$i] * 1;
        $query3 = "SELECT * from causas_nuevas2 where c_articulo=40 and c_aparte='$atenuante_seleccionado'";
        $resultado3 = mysql_query($query3) OR DIE("La consulta $query3 fallo" . mysql_error());
        if ($registros3 = mysql_fetch_array($resultado3))
            {
            $valor_atenuante = $registros3["valor"];
            $total_circunstancias1 = $total_circunstancias1 + $valor_atenuante;
            }
        }

    echo "<td>" . $total_circunstancias1 . "</td>";
    echo "</tr>";
    }

?>

ЗАМЕЧАНИЕ:

  • Проверьте countи каждый реестр показывает количество: 1 , 2, 2, 1, 2, 1..

  • Проверьте полученную стоимость, и он приносит пользу: 1=0.2, 2=0.3: 3=0.15.

  • Я умножаю из-за 1, так как таблица, где - стоимость, просит целое число, и explode производит меня string.

7
задан 05.05.2017, 15:48
0 ответов