php - 如何在 PHP 中创建下拉查找字段?
问题描述
这里是 PHP 新手,
我在 MySQL Workbench 中有一个图书馆数据库,其中包含以下表格:Student、Book 和 Checkin。我正在尝试使用 HTML 和 PHP 在网页上显示它,到目前为止它一直很好,直到尝试在签到表中将 s_id 显示为“s_name”,这是学生姓名,b_id 到 b_name 也是如此。我已经在 Workbench 中创建了外键连接,但不知道如何创建一个下拉选项,以显示我已经在各自的表中创建的学生姓名和书名(而不是 s_id 和 b_id)。
在 MS Access 中查找字段非常简单,但事实证明,作为初学者,创建 PHP 版本很困难……这就是它现在的样子。
<?php
include('conn.php');
$query=mysqli_query($conn,"select * from `checkin`");
while($row=mysqli_fetch_array($query)){
?>
<tr>
<td><?php echo $row['c_id']; ?></td>
<td><?php echo $row['s_id']; ?></td>
<td><?php echo $row['b_id']; ?></td>
<td><?php echo $row['c_date']; ?></td>
<td><?php echo $row['c_in']; ?></td>
<td>
<a href="edit_checkin.php?id=<?php echo $row['c_id']; ?>">Edit</a>
<a href="delete_checkin.php?id=<?php echo $row['c_id']; ?>">Delete</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
非常感谢任何帮助或提示!
解决方案
现在有了准备好的查询:
lib4.php
<form action='add_borrowing1.php' method='post'>
<br>
<select name="student">
<?php
$link = mysqli_connect("localhost", "root", "", "library");
$sql = "SELECT DISTINCT studentId, studentName
FROM students";
$result = mysqli_query($link, $sql);
print "<option value='students' selected>Students</option>";
While ($row = mysqli_fetch_assoc($result))
{
print "<option value=" . $row["studentId"] . ">"
. $row["studentName"] . "</option>";
}
?>
</select>
<p>Book:</p>
<br>
<select name="book">
<?php
$link = mysqli_connect("localhost", "root", "", "library");
$sql = "SELECT DISTINCT bookId, bookName
FROM books";
$result = mysqli_query($link, $sql);
print "<option value='books' selected>Books</option>";
While ($row = mysqli_fetch_assoc($result))
{
print "<option value=" . $row["bookId"] . ">"
. $row["bookName"] . "</option>";
}
?>
</select>
<input type="submit" />
</form>
<?php
if (!isset($_GET["raw"])) {
echo "";
}
else {
echo "Borrowing has been successfully added!";
}
?>
add_borrowing.php
======================
<?php
$book = $_POST["book"];
$student = $_POST["student"];
$link = mysqli_connect("localhost", "root", "", "library");
$sql = "INSERT INTO borrowing (bookId, studentId) VALUES (?,?)";
$stmt = mysqli_prepare($link, $sql);
/*
Explanation:
i Integers
d Doubles
b Blobs
s Everything Else
*/
mysqli_stmt_bind_param($stmt, "ii", $book,
$student);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
mysqli_close($link);
header("Location:lib4.php?raw=1");
?>
推荐阅读
- sql - 如何从只读 SQL 数据库中提取信息?
- sql - PySpark / Spark 窗口功能第一期/最后一期
- reactjs - 如何禁用列表中的单个按钮?
- angular - Angular - 从外键获取对象
- sql-server - DATEADD(DAY, 1, GETDATE()) 和 DATEADD(DAY, 1, DATEDIFF(DAY, 0, GETDATE())) 有什么不同
- sql-server - 将一个 temptable 与另一个具有不同列的表连接起来,并且在 mysql 服务器中两个表中的列数不同
- javascript - mongodb中用户之间的自定义搜索
- c++ - 如何从 C++ 中的字符串中删除纯“\n”?
- java - 无法使用 HTTPS 连接到在服务器上运行的 Spring 项目(SSL 错误)
- android - 无法在 Iphone 上访问我们的 Angular 网站?