Я пытаюсь выполнить запрос SQL INSERT
, только если pageID (номер), который был получен с помощью вызова AJAX, больше, чем тот, который уже есть в БД. Пользователь по существу нажимает на следующую кнопку, которая показывает правильное содержимое страницы, затем вызывает запрос AJAX POST, который запускает оператор SQL. Буду признателен за любые указания в отношении заявления проверки, если я ударился о кирпичную стену.
Код следующей кнопки:
<a id="next" onclick="savePgID(1,2)">Next</a>
AJAX Звоните:
function savePgID(moduleID, pageID){
$.ajax({
url: "pageAJAX.php",
method: "POST",
data: {moduleID:moduleID, pageID:pageID},
dataType: 'json',
});
}
страница AJAX:
<?php
session_start();
require 'scripts/db.php';
$studentID = $_SESSION['studentID'];
if(isset($_POST['pageID'])) {
$moduleID = $_POST['moduleID'];
$pageID = $_POST['pageID'];
if() {
// Here is where I want to check whether using the moduleID and
// pageID to check if the pageID in the db is less than the page
// user is on. Only if the pageID user is currently on, is
// greater than what they have in db, THEN run the below insert.
} else {
// INSERT Query into DB, this will update the pageID when user clicks next on module
$stmt = $conn->prepare ("UPDATE `studentTakingModule`
SET `pageID` = ?
WHERE `studentTakingModule`.`studentID` = ?
AND `studentTakingModule`.`moduleID` = ? ");
$stmt->bind_param("iii", $pageID, $studentID, $moduleID);
$stmt->execute();
$result = $stmt->get_result();
}
}
?>
ПРИМЕЧАНИЕ *** После получения ответа Я обновил код до приведенного ниже, который теперь никогда не запускает новый номер pageID INSERT
в мою БД (хотя текущий pageID больше, чем номер pageID в базе данных):
<?php
session_start();
require 'scripts/db.php';
$studentID = $_SESSION['studentID'];
if(isset($_POST['pageID']))
{
$pageID = $_POST['pageID'];
$moduleID = $_POST['moduleID'];
$stmt = $conn->prepare ("SELECT MAX(pageID) as `pageID`, `moduleID` FROM `studentTakingModule` WHERE `studentTakingModule`.`studentID` = ? AND `studentTakingModule`.`moduleID` = ? ");
$stmt->bind_param("ii", $studentID, $moduleID);
$stmt->execute();
$result = $stmt->get_result();
if(!empty($result)) {
$dbPageID = $result[0]['pageID'];
//$dbPageID2 = $row['pageID'];
if($pageID > $dbPageID) {
echo "You have reached the update statement";
// INSERT Query into DB, this will update the pageID when user clicks next on module
$stmt = $conn->prepare ("UPDATE `studentTakingModule` SET `pageID` = ? WHERE `studentTakingModule`.`studentID` = ? AND `studentTakingModule`.`moduleID` = ? ");
$stmt->bind_param("iii", $pageID, $studentID, $moduleID);
$stmt->execute();
$result = $stmt->get_result();
}
}
}
?>