- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个培训矩阵/跟踪网站。我从另一个表的数据库中填充了下拉列表。我能够显示来自另外两个表的表数据,这些表引用用户 ID,在顶部显示用户的名称,然后显示一个在下面完成所有训练的表。
我已经使下拉菜单正常工作,但我正在努力让数据库使用下拉框中设置的 id 将数据提取到表中。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// We need to use sessions, so you should always start sessions using the below code.
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin'])) {
header('Location: index.html');
exit();
}
?>
<?php
include ("templates/header.php");
include ("connect-db.php");
?>
<?php
$EmployeeID = $_POST['Get'];
$sqlEmployee = "SELECT EmployeeID, EName FROM employee ORDER BY EName";
$stmtEmployee = $dbCon->prepare($sqlEmployee);
$arrEmployee = array();
$stmtEmployee->bindValue(':EmployeeID', $EmployeeID);
if ($stmtEmployee->execute()) {
$arrEmployee = $stmtEmployee->fetchAll(PDO::FETCH_ASSOC);
}
if (!isset($_POST['EmployeeID'])) {
$sql = "SELECT * FROM employee";
$stmtTable = $dbCon->prepare($sql);
$stmtTable->execute();
}
?>
<center>
<form action="search.php" method="post">
<label for="EmployeeID">Employee</label>
<select name="EmployeeID" id="EmployeeID">
<?php
for($i=0;$i<count($arrEmployee);$i++) {
$row = $arrEmployee[$i];
?>
<option value="<?= $row['EmployeeID'] ?>" <?php echo "Selected='selected'"?> ><?= $row['EName'] ?></option>
<?php
}
?>
</select>
<input type="submit" name="Get" value="Add New Record"></button>
</center>
<?php
echo "<table border='1'>
<tr>
<th>Name</th>
<th>Home</th>
<th>Shift</th>
<th>Start Date</th>
</tr>";
while ($rowTable = $stmtTable->fetch($sql))
{
echo "<tr>";
echo "<td>" . $rowTable['EName'] . "</td>";
echo "<td>" . $rowTable['HomeBase'] . "</td>";
echo "<td>" . $rowTable['Shift'] . "</td>";
echo "<td>" . $rowTable['StartDate'] . "</td>";
echo "</tr>";
}
echo "</table>";
$stmtTable=Null
?>
<?php
include ("templates/footer.php");
?>
我收到一个错误,它没有获取变量。我知道如何加入数据库,但很难获得简单的名称转换开始日期数据。
更新后的新代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// We need to use sessions, so you should always start sessions using the below code.
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin'])) {
header('Location: index.html');
exit();
}
//includes for page
include ("templates/header.php");
include ("connect-db.php");
// This one below is for the dropdown box to populate the user name
$EmployeeID = $_POST['EmployeeID']; //changed this to EMployeeID from Get
$sqlEmployee = "SELECT EmployeeID, EName FROM employee ORDER BY EName";
$stmtEmployee = $dbCon->prepare($sqlEmployee);
$stmtEmployee->bindValue(':EmployeeID', $EmployeeID);
$arrEmployee = array();
if ($stmtEmployee->execute()) {
$arrEmployee = $stmtEmployee->fetchAll(PDO::FETCH_ASSOC);
}
?>
<center>
<form action="search.php" method="post">
<label for="EmployeeID">Employee</label>
<select name="EmployeeID" id="EmployeeID">
<?php
//this is a dropdown box for the top of the page to be able to select user to display data on
for($i=0;$i<count($arrEmployee);$i++) {
$row = $arrEmployee[$i];
echo '<option value="' . $row['EmployeeID'] . '">' . $row['EName'] . '</option>';
}
?>
</select>
<button type="submit" name="Get">Get</button>
</form>
</center>
<table border='1'>
<thead>
<tr>
<th>Name</th>
<th>Home</th>
<th>Shift</th>
<th>Start Date</th>
</tr>
</thead>
<tbody>
<?php
//this is for the data in the table to be populated using the dropdown as the source for the id to display the user data ect.
if (!isset($_POST['EmployeeID'])) {
$sql = "SELECT * FROM employee Where EmployeeID = $EmployeeID";
$stmtTable = $dbCon->prepare($sql);
$stmtTable->execute();
while ($rowTable = $stmtTable->fetch()) {
echo "<tr>";
echo "<td>" . $rowTable['EName'] . "</td>";
echo "<td>" . $rowTable['HomeBase'] . "</td>";
echo "<td>" . $rowTable['Shift'] . "</td>";
echo "<td>" . $rowTable['StartDate'] . "</td>";
echo "</tr>";
}
} else {
echo '<tr><td colspan="4">No records found</td>';
}
?>
</tbody>
</table>
<?php include ("templates/footer.php"); ?>
更新2通过将 if (!isset($_POST['EmployeeID'])) 更改为 if (isset($_POST['EmployeeID'])) 这使得页面可以工作,但我仍然收到错误“注意:未定义索引:EmployeeID in C:\UniServerZ\www\search.php 位于第 19 行”,首次加载页面时,但单击名称后,该问题消失。
最佳答案
我按照 Adam Miller 的通知更改了代码(谢谢 Adam),然后我更改了:
!isset 到第二个查询上的 isset
和
$EmployeeID = $_POST['EmployeeID']
to
$EmployeeID = (isset($_POST['EmployeeID']) ? $_POST['EmployeeID'] : '');
这样就可以在检查是否有输入时消除错误。
再次感谢亚当,你太棒了。
关于php - 尝试从下拉列表中获取 EmployeeID 和 EName 以在查询中使用以显示表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57185621/
我想做的是尝试将多个实体转换为 prder 中的 VLA-OBJECTS,以使用它们可用的 Vlisp 函数。我想做的是: (while (vla-object (read (strcat "off"
如何使用GreenDao执行“从emp选择不同的ename” 我正在尝试使用GreenDao获得sqlite DB列的不同值。我该怎么做?任何帮助表示赞赏。 最佳答案 您必须使用原始查询,例如: pr
我正在开发一个培训矩阵/跟踪网站。我从另一个表的数据库中填充了下拉列表。我能够显示来自另外两个表的表数据,这些表引用用户 ID,在顶部显示用户的名称,然后显示一个在下面完成所有训练的表。 我已经使下拉
我想使用命令行参数初始化结构,但我被困在这两者之间,为什么我们必须将 ename 设为 char 指针类型而不是 char 数组。 #include #include struct emp {
我是一名优秀的程序员,十分优秀!