Логика такая: Пользователь проходит тест на стороне клиента, в результате прохождения которого зарабатывает "score". В конце, с помощью AJAX запроса передаю в php скрипт значение "score" и название проходимого теста "name" (данные передаются)
На стороне php нужно совершать такие действия:
Загрузить данные о пользователе чья сейчас сессия
Проверить, есть ли уже значение "name" в связанной с user (1:M) таблицей "tests"
Если есть, то после нескольких условий изменить данные в нескольких полях
Если нет, создать новую запись
Новая запись создается, но только первый раз, если ни один другой user еще не создавал ее, все остальное не работает (Никаких ответов и ошибок от сервера не приходит)
Что я написал не так?
php скрипт:
<?php
require "db.php";
if (isset($_SESSION['logged_user'])) {
// Получаем id users чья сессия
$userid = $_SESSION['logged_user']->id;
// Загружаем данные об этом user
$user = R::load( 'users', $userid );
// Дальше я не уверен в том правильно ли я сделал выборку
// ищем запись $_POST['name'] в поле "name" в таблице "tests"
$findTest = R::findOne('tests', 'name = ?', array($_POST['name']));
//Если такая запись есть
if ($findTest) {
//В цикле, который по идее перебирает именно данные юзера с id = $_SESSION['logged_user']
foreach( $user->ownTestsList as $test ) {
//Если найдено поле = $_POST['name']
if ($test->name == $_POST['name']) {
//При этом, если значение progress в базе < $_POST['score']
if ($test->progress < $_POST['score']) {
//То записываем новое значение в progress
$test->progress = $_POST['score'];
//И записываем новое значение в time
$test->time = strtotime("now");
//Записываем новые данные в бд к тому самому юзеру, чье id = $_SESSION['logged_user']
$user->ownTestsList[] = $test;
}
}
break;
}
}
//Если запись не найдена $findTest
else {
//Создаем новое поле в таблице "tests"
$test = R::dispense('tests');
$test->name = $_POST['name'];
$test->progress = $_POST['score'];
$test->time = strtotime("now");
$user->ownTestsList[] = $test;
}
//Сохраняем данные
R::store($user);
}
?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не работает форма обратной связи (не приходят сообщения на почту), хотя сообщения на локальном сервере отправляетКод в форме html:
Можно ли стандартными средствами java 18 создать на основе старой коллекции новую коллекцию элементов, но с другим типом элементов не через...
Такая проблема: вызываются две функции (одна идет за другой), но первой выполняется вторая, что делает программу не юзабельной
Мне нужно прочитать вот этот документПытался сделать это с помощью pdfbox: