php - 第二个查询在硬编码时有效,但在我用 POST 变量替换 WHERE 条件时无效
问题描述
我正在尝试在一个数据表中显示以下代码的输出。现在,只显示第一个查询的输出。当我在第二个查询中用硬编码值(比如 4563)替换 $opr_emp_id 时,这很好用 - 我得到了两个结果集。这是示例 fetch.php:
<?php
//fetch.php
include_once("DB_Config.php");
$data = array();
$opr_emp_id = trim(mysqli_real_escape_string($conn,$_POST["opr_id"]));
$query_PE = "SELECT power_equipment_training.PE_TRAINING_ID AS TRAINING_ID,
power_equipment_training.PE_training_name AS TRAINING_NAME,
power_equipment_docs.PE_DOC_ID AS DOCUMENT_ID,
power_equipment_docs.PE_doc_name AS DOCUMENT_NAME,
power_equipment_docs.PE_doc_latest_version AS LATEST_VERSION,
emp_power_equipment.PE_doc_version_trained AS VERSION_TRAINED,
emp_power_equipment.PE_training_received_date AS TRAINED_DATE,
emp_power_equipment.PE_training_validity AS VALIDITY,
emp_power_equipment.PE_qualification_status AS QUALIFICATION_STATUS
FROM emp_power_equipment
INNER JOIN ( power_equipment_training INNER JOIN
power_equipment_docs ON
power_equipment_training.PE_TRAINING_ID = power_equipment_docs.PE_TRAINING_ID
)
ON emp_power_equipment.PE_DOC_ID = power_equipment_docs.PE_DOC_ID
WHERE emp_power_equipment.emp_id='".$opr_emp_id."'";
$result_PE = mysqli_query($conn, $query_PE);
while($row_PE = mysqli_fetch_array($result_PE)) {
$sub_array = array();
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="DOCUMENT_ID">' . $row_PE["DOCUMENT_ID"] . '</div>';
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="DOCUMENT_NAME">' . $row_PE["DOCUMENT_NAME"] . '</div>';
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="TRAINING_ID">' . $row_PE["TRAINING_ID"] . '</div>';
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="TRAINING_NAME">' . $row_PE["TRAINING_NAME"] . '</div>';
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="VERSION_TRAINED">' . $row_PE["VERSION_TRAINED"] . '</div>';
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="LATEST_VERSION">' . $row_PE["LATEST_VERSION"] . '</div>';
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="TRAINED_DATE">' . $row_PE["TRAINED_DATE"] . '</div>';
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="VALIDITY">' . $row_PE["VALIDITY"] . '</div>';
$sub_array[] = '<div data-id="'.$row_PE["DOCUMENT_ID"].'" data-column="QUALIFICATION_STATUS">' . $row_PE["QUALIFICATION_STATUS"] . '</div>';
$sub_array[] = '<button type="button" name="delete" class="btn btn-danger btn-xs delete" id="'.$row_PE["DOCUMENT_ID"].'">Delete</button>';
$data[] = $sub_array;
}
$query_EMS = "SELECT EMS_procedure_training.EMS_TRAINING_ID AS TRAINING_ID,
EMS_procedure_training.EMS_training_name AS TRAINING_NAME,
EMS_procedure_docs.EMS_DOC_ID AS DOCUMENT_ID,
EMS_procedure_docs.EMS_doc_name AS DOCUMENT_NAME,
EMS_procedure_docs.EMS_doc_latest_version AS LATEST_VERSION,
emp_EMS_procedure.EMS_doc_version_trained AS VERSION_TRAINED,
emp_EMS_procedure.EMS_training_received_date AS TRAINED_DATE,
emp_EMS_procedure.EMS_training_validity AS VALIDITY,
emp_EMS_procedure.EMS_qualification_status AS QUALIFICATION_STATUS
FROM emp_EMS_procedure
INNER JOIN ( EMS_procedure_training
INNER JOIN EMS_procedure_docs ON
EMS_procedure_training.EMS_TRAINING_ID = EMS_procedure_docs.EMS_TRAINING_ID
)
ON emp_EMS_procedure.EMS_DOC_ID = EMS_procedure_docs.EMS_DOC_ID
WHERE emp_EMS_procedure.emp_id='".$opr_emp_id."'";
$result_EMS = mysqli_query($conn, $query_EMS);
while($row_EMS = mysqli_fetch_array($result_EMS)) {
$sub_array = array();
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="DOCUMENT_ID">' . $row_EMS["DOCUMENT_ID"] . '</div>';
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="DOCUMENT_NAME">' . $row_EMS["DOCUMENT_NAME"] . '</div>';
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="TRAINING_ID">' . $row_EMS["TRAINING_ID"] . '</div>';
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="TRAINING_NAME">' . $row_EMS["TRAINING_NAME"] . '</div>';
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="VERSION_TRAINED">' . $row_EMS["VERSION_TRAINED"] . '</div>';
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="LATEST_VERSION">' . $row_EMS["LATEST_VERSION"] . '</div>';
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="TRAINED_DATE">' . $row_EMS["TRAINED_DATE"] . '</div>';
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="VALIDITY">' . $row_EMS["VALIDITY"] . '</div>';
$sub_array[] = '<div data-id="'.$row_EMS["DOCUMENT_ID"].'" data-column="QUALIFICATION_STATUS">' . $row_EMS["QUALIFICATION_STATUS"] . '</div>';
$sub_array[] = '<button type="button" name="delete" class="btn btn-danger btn-xs delete" id="'.$row_EMS["DOCUMENT_ID"].'">Delete</button>';
$data[] = $sub_array;
}
$output = array(
"draw" => intval($_POST["draw"]),
"data" => $data
);
echo json_encode($output);
?>
AJAX 调用:
$(document).ready(function(){
fetch_data();
function fetch_data() {
var dataTable = $('#opr_training-dt').DataTable({
"processing" : true,
"serverSide" : false,
"order" : [],
"ajax" : {
url:"fetch.php",
type:"post",
data:{opr_id:<?php echo $opr_emp_id; ?>}
}
});
}
}
前端:
<table id="opr_training-dt" class="table table-hover table-bordered responsive" cellspacing="0" width="100%">
<thead class="thead-dark">
<tr>
<th scope="col">DOCUMENT ID</th>
<th scope="col">DOCUMENT NAME</th>
<th scope="col">TRAINING ID</th>
<th scope="col">TRAINING NAME</th>
<th scope="col">VERSION TRAINED</th>
<th scope="col">LATEST VERSION</th>
<th scope="col">TRAINED DATE</th>
<th scope="col">VALIDITY</th>
<th scope="col">QUALIFICATION STATUS</th>
<th></th>
</tr>
</thead>
</table>
我不知道为什么会这样。我是 PHP 的新手。任何帮助表示赞赏。
解决方案
推荐阅读
- r - 如何为新功能的帮助页面创建存根?
- html - 使用滚动条指定面板中的项目数
- sql - SQL 用不同的值更新多行,它们与列表中的值匹配
- jquery - 如何更改选择标签的触发事件?
- c# - 条件反向映射
- aws-codepipeline - 如何在 AWS CodeBuild Standard Linux 2.0 (Ubuntu 18.0) 中安装 Maven
- r - R中的趋势()函数是什么
- node.js - Typescript中工作线程上的编译错误
- javascript - TypeError: moment__WEBPACK_IMPORTED_MODULE_3___default(...)(...).calendar(...).sort 不是函数
- hp-uft - UFT 报告已损坏