Кажется, переменная сбрасывает себя - PullRequest
0 голосов
/ 11 апреля 2020
$trainingStmt = $db_conx->prepare("SELECT id, groupName, date, sessDate, plan, completed, points FROM lockdownTraining
       WHERE groupName = ? ORDER BY sessDate, groupName");
    $trainingStmt->bind_param("s",$groupName);
    $trainingStmt->execute();
    $trainingResult = $trainingStmt->get_result();
    while ($row = $trainingResult->fetch_assoc()) {
        $tid = $row["id"];
        $date = $row["sessDate"];
        $newDate = date("l d F Y", strtotime($date));
        $session = htmlspecialchars_decode(stripslashes($row['plan']), ENT_QUOTES);
        $groupName = $row["groupName"];
        $completed = $row["completed"];
        $points = $row["points"];
        $completed_array = explode(",",$completed);



        $newPoints = $points;
        //Update users table ith the new points total
        $stmt = $db_conx->prepare("UPDATE users SET ldPoints = ? WHERE username = ?");
        $stmt->bind_param("is", $newPoints, $u);
        $stmt->execute();

        $sessTable .= '<div class="row">
                            <div class="col-12 col-m-12" style="color:#FFF; border:1px solid black; background-color:#464B52">' .$newDate. ' - 
                            <a href="groupPage.php?g='.$groupId.'"><b>' .$groupName. '</b></a>' .$completedBtn. '<br/>Points for this session= '.$points.'
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-8 col-m-8 session">
                                    <div class="sessDiv" >' .$session. '</div>
                                    <div class="editDiv">' .$editBtns. '</div>
                            </div>
                            <div class"col-4 col-m-4">
                                <div class="attending">
                                    ' .$completedList. '
                                </div>
                            </div>
                        </div><br/>';


    }
    $completedList = '';

Это упрощенная версия моего кода. Переменная $points ведет себя странно. В $sessTable он работает и отображает правильную сумму, но в операторе UPDATE таблица пользователей показывает точки как 0. Если я изменяю $newPoints = 10;, то 10 отображается в таблице пользователей, и инструкция работает. Если бы кто-то мог указать, что происходит с переменной $ponts, это было бы здорово.

1 Ответ

1 голос
/ 11 апреля 2020

$ u не задано в вашем примере, поэтому я предполагаю, что это будет дополнительно задано в коде, который вы не включили.

У вас есть время l oop, и давайте возьмем, например, этот цикл 10 раз.

В конечном итоге вы выполняете оператор обновления SQL 10 раз, когда вы должны делать это только один раз.

Значение, которое он в конечном итоге обновляет, является значением последнего строка в запросе выбора, которая выглядит так, как будто она равна 0.

Если не приводить пример строк базы данных, для которых вы выполняете запрос, то это все предположение. Если это не решит проблему, вам все равно нужно разобраться с поднятой проблемой обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...