Я пытаюсь иметь инвентаризацию деталей некоторых пользователей, управляемых в базе данных, управляемой MariaDB. Идея на этом этапе состоит в том, что: < /p>
[*] Если часть не имеет серийного номера, проверьте, находится ли список с идентификатором этой части в таблице. /> Наконец, если часть имеет серийный номер, просто добавьте его. Во -первых, проверка ошибок: < /p>
if (empty($_POST["serialNumber"])) //If the serial number field is empty...
{
$YN = is_sn_required($pdo_User, $pID);
if ($YN === "required") //And if a serial # is required...
{
$errors["sn_is_req"] = "Please enter a serial number."; //Throw this error
}
}
else //If the serial number field is NOT empty...
{
if (existing_serial_number($pdo_User, $pSer, $uName, $pID)) //If it already exists...
{
$errors["existing_sn"] = "That serial number already exists."; //Throw this error
}
}
< /code>
Тогда какой -то код добавляет $ errors < /code> в сеанс и перезагрузка страницы формы.
Далее, если ошибки нет, добавление данных в таблицу: < /p>
if (empty($_POST["serialNumber"])) //If there isn't a serial #
{
if (does_pID_exist($pdo_User, $pID, $uName)) //If a part ID already exists
{
update_tech_part($pdo_User, $pID, $uName); //update the quantity by 1
}
else
{
add_tech_part($pdo_User, $pSer, $pID, $uName); //otherwise, add it to techpartslist table
}
}
else
{
add_tech_part($pdo_User, $pSer, $pID, $uName); //Add the part to techpartslist if it does have a SN
}
< /code>
Некоторые функции для обработки ошибок: < /p>
function existing_serial_number(object $pdo_User, string $pSer, string $pID)
{
//Check if the supplied serial # already exists for this part
$query = "SELECT serialNumber FROM techpartslist WHERE serialNumber = :serNum AND partID = :pID;";
$stmt = $pdo_User->prepare($query);
$stmt->bindParam(":serNum", $pSer);
$stmt->bindParam(":userName", $uName);
$stmt->bindParam(":pID", $pID);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result;
}
function is_sn_required(object $pdo_User, string $pID)
{
//Check if the supplied serial number is required for this part
$query = "SELECT snReq FROM masterpartslist WHERE id = :pID;";
$stmt = $pdo_User->prepare($query);
$stmt->bindParam(":pID", $pID);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$YN = $result["snReq"];
return $YN;
}
< /code>
и функции для добавления в таблицу: < /p>
function does_pID_exist(object $pdo_User, string $pID, string $uName)
{
//Check if the supplied part ID already matches
$query = "SELECT partID FROM techpartslist WHERE partID = :pID AND userName = :uName;";
$stmt = $pdo_User->prepare($query);
$stmt->bindParam(":pID", $pID);
$stmt->bindParam(":uName", $uName);
$stmt->execute;
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result;
}
function update_tech_part(object $pdo_User, string $pID, string $uName)
{
//Get the quantity and update it by 1
$query = "UPDATE techpartslist SET quantity = quantity + 1 WHERE partID = :pID AND userName = :uName;";
$stmt = $pdo_User->prepare($query);
$stmt->bindParam(":pID", $pID);
$stmt->bindParam(":uName", $uName);
$stmt->execute();
}
function add_tech_part(object $pdo_User, string $pSer, int $pID, string $uName)
{
//Add a new row in the table
$query = "INSERT INTO techpartslist (serialNumber, quantity, partID, userName)
VALUES (:pSN, 1, :pID, :uName);";
$stmt = $pdo_User->prepare($query);
$stmt->bindParam(":uName", $uName);
$stmt->bindParam(":pSN", $pSer);
$stmt->bindParam(":pID", $pID);
$stmt->execute();
}
< /code>
и пример основной базы данных: < /p>
id partName partNumber snReq
22 Scanner 561-111 no
24 Printer Cable 2001-111 no
25 XR7+ 850-7003 required
27 XR8 850-8001 required
< /code>
Окончательный результат вводится в таблице с надписью «TechPartsList».
для повторного объема, каково мое желание -< /p>
сначала проверьте ошибки. Пусто, < /li>
Проверьте таблицу "TechPartsList", чтобы увидеть, если какая -либо запись для этой части уже существует. < /li>
If the part (via partID) does exist, increase the count of the 'quantity' column by 1.
Примечание это в этой части, где возникает проблема. Обновление подсчета пропущено, а часть добавляется вместо этого, что делает точный дубликат. ** < /li>
Я пытаюсь иметь инвентаризацию деталей некоторых пользователей, управляемых в базе данных, управляемой MariaDB. Идея на этом этапе состоит в том, что: < /p>
[*] Если часть не имеет серийного номера, проверьте, находится ли список с идентификатором этой части в таблице. /> Наконец, если часть имеет серийный номер, просто добавьте его. Во -первых, проверка ошибок: < /p> [code]if (empty($_POST["serialNumber"])) //If the serial number field is empty... { $YN = is_sn_required($pdo_User, $pID); if ($YN === "required") //And if a serial # is required... { $errors["sn_is_req"] = "Please enter a serial number."; //Throw this error } } else //If the serial number field is NOT empty... { if (existing_serial_number($pdo_User, $pSer, $uName, $pID)) //If it already exists... { $errors["existing_sn"] = "That serial number already exists."; //Throw this error } } < /code> Тогда какой -то код добавляет $ errors < /code> в сеанс и перезагрузка страницы формы. Далее, если ошибки нет, добавление данных в таблицу: < /p> if (empty($_POST["serialNumber"])) //If there isn't a serial # { if (does_pID_exist($pdo_User, $pID, $uName)) //If a part ID already exists { update_tech_part($pdo_User, $pID, $uName); //update the quantity by 1 } else { add_tech_part($pdo_User, $pSer, $pID, $uName); //otherwise, add it to techpartslist table } } else { add_tech_part($pdo_User, $pSer, $pID, $uName); //Add the part to techpartslist if it does have a SN } < /code> Некоторые функции для обработки ошибок: < /p> function existing_serial_number(object $pdo_User, string $pSer, string $pID) { //Check if the supplied serial # already exists for this part
$query = "SELECT serialNumber FROM techpartslist WHERE serialNumber = :serNum AND partID = :pID;"; $stmt = $pdo_User->prepare($query); $stmt->bindParam(":serNum", $pSer); $stmt->bindParam(":userName", $uName); $stmt->bindParam(":pID", $pID); $stmt->execute();
function is_sn_required(object $pdo_User, string $pID) { //Check if the supplied serial number is required for this part
$query = "SELECT snReq FROM masterpartslist WHERE id = :pID;"; $stmt = $pdo_User->prepare($query); $stmt->bindParam(":pID", $pID); $stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC); $YN = $result["snReq"]; return $YN; } < /code> и функции для добавления в таблицу: < /p> function does_pID_exist(object $pdo_User, string $pID, string $uName) { //Check if the supplied part ID already matches
$query = "SELECT partID FROM techpartslist WHERE partID = :pID AND userName = :uName;"; $stmt = $pdo_User->prepare($query); $stmt->bindParam(":pID", $pID); $stmt->bindParam(":uName", $uName); $stmt->execute;
function update_tech_part(object $pdo_User, string $pID, string $uName) { //Get the quantity and update it by 1
$query = "UPDATE techpartslist SET quantity = quantity + 1 WHERE partID = :pID AND userName = :uName;"; $stmt = $pdo_User->prepare($query); $stmt->bindParam(":pID", $pID); $stmt->bindParam(":uName", $uName); $stmt->execute(); }
function add_tech_part(object $pdo_User, string $pSer, int $pID, string $uName) { //Add a new row in the table
$query = "INSERT INTO techpartslist (serialNumber, quantity, partID, userName) VALUES (:pSN, 1, :pID, :uName);"; $stmt = $pdo_User->prepare($query); $stmt->bindParam(":uName", $uName); $stmt->bindParam(":pSN", $pSer); $stmt->bindParam(":pID", $pID); $stmt->execute(); } < /code> и пример основной базы данных: < /p> id partName partNumber snReq 22 Scanner 561-111 no 24 Printer Cable 2001-111 no 25 XR7+ 850-7003 required 27 XR8 850-8001 required < /code> Окончательный результат вводится в таблице с надписью «TechPartsList». для повторного объема, каково мое желание -< /p> сначала проверьте ошибки. Пусто, < /li> Проверьте таблицу "TechPartsList", чтобы увидеть, если какая -либо запись для этой части уже существует. < /li>
If the part (via partID) does exist, increase the count of the 'quantity' column by 1. [/code] [b] Примечание [/b] это в этой части, где возникает проблема. Обновление подсчета пропущено, а часть добавляется вместо этого, что делает точный дубликат. ** < /li>
[code]If the part does NOT exist, then add the item (without the serial #) to the table. [/code]
[*] Если поле «SerialNumber» из формы не является пустым, Добавить часть (с серийным #) к таблице.