Как изменить значение, вставленное в базу данных, на переменную, которую я создал из JavaScript / ajax? - PullRequest
0 голосов
/ 27 декабря 2018

Я создал планировщик маршрутов, в котором пользователи ездят на работу и получают очки в зависимости от типа транспорта, который я использую. Я хочу сохранить накопленные баллы в накопительной базе данных, которую я создал, но у меня возникла проблемас использованием переменной JavaScript из планировщика маршрутов, чтобы она была вставлена ​​в базу данных, поскольку я не знаю, какой оператор SQL использовать.

Я изменил операторы SQL с 'INSERT INTO' на 'UPDATE ', изменив поле в хосте базы данных, который я использую, и взяв его из этого.Однако я хочу, чтобы точки хранились накопленно, а не переписывались.

Я изменил JavaScript на странице, и PHP работает, когда используется правильный оператор SQL.

<?php

include('Link.php');


$stmt = $mysqli->prepare("UPDATE `Employees` SET `carbo_points` = 400 WHERE 
`Employees`.`employee_id` = 1; ");
$stmt->bind_param('i', $_POST['CarboPoints']);
$stmt->execute();
$stmt->close();


echo "Carbo Points have been stored.";

?>

Этоизменит Carbo Points пользователя с идентификатором сотрудника от 1 до 400 в базе данных.Тем не менее, я хочу рабочий SQL-оператор, в котором пользователь добавляет «CarboPoints», которые он заработал в этом конкретном путешествии, к их текущему итогу.Но я не знаю, как включить переменную 'CarboPoints', которую я создал в ajax, в оператор SQL.

1 Ответ

0 голосов
/ 27 декабря 2018

Кажется, у вас есть несколько вопросов:

1.- Добавить вместо перезаписи Вы можете изменить sql, чтобы добавить баллы: SET carbo_points = carbo_points + new_points.

2.- Получение баллов из параметров ajax Просто используйте ? до Параметризация Запрос: carbo_points = carbo_points + ?.

В итоге:

$stmt = $mysqli->prepare("UPDATE `Employees` 
                          SET `carbo_points` = `carbo_points` + ? 
                          WHERE `Employees`.`employee_id` = 1; ");
$stmt->bind_param('i', $_POST['CarboPoints']);
$stmt->execute();
$stmt->close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...