使用 PHP 从 mysql 显示的可点击数据
Posted
技术标签:
【中文标题】使用 PHP 从 mysql 显示的可点击数据【英文标题】:Clickable data displayed from mysql using PHP 【发布时间】:2013-09-21 13:34:46 【问题描述】:我不太擅长 javascript,但这是我的问题。
我有三个页面:page1.php
、page2.php
、page3.php
在page1.php
,我有一个表格供用户选择他们想要查看的年级,然后在page2.php
上执行操作——显示该年级所有学生的列表。
这是page2.php
的代码
<?php
//database variables
require_once('admin_settings.php');
//these variables are from a form used to display the current data
$level = $_POST['level_group'];
$room = $_POST['room_group'];
$con=mysqli_connect("$host","$dbuser","$dbpass","$dbname");
mysqli_set_charset($con, "utf8");
// Check connection
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
$result = mysqli_query($con,"SELECT std_id, std_name FROM students WHERE std_level LIKE '$level%' AND std_room LIKE '$room';");
//table
echo"
<table border='1' id='mytable'>
<tr bgcolor = #99CCFF>
<th><b>Student ID</b></th>
<th><b>Name</b></th>
<th><b>Action</b></th>
</tr>";
//loop through the database
while($row = mysqli_fetch_array($result))
echo"<form action='view_one_student.php' method='post'>";
echo "<tr bgcolor = '#c0eae4n' id = 'listings'>";
echo "<td name= 'stdid'>" . $row['std_id'] . "</td>";
echo "<td>" . $row['std_name'] . "</td>";
echo "<td>" . '<input type="submit" value="view"> <input type="submit" value="sdq">' . "</td>";
echo "</tr>";
echo "</form>";
echo "</table>";
mysqli_close($con);
?>
问题...现在是我如何在page3.php
上编写代码,以便当用户单击每列旁边的 view 或 sdq 按钮时,应捕获学生 ID,向数据库发送请求,并查询与该特定学生相关的其他数据,例如年龄、地址、电话等。并将它们显示在page3.php
【问题讨论】:
你能传递一个用学生证隐藏的输入吗?因此,在第 3 页中,您需要搜索该学生并显示信息。 在第 3 页,我可以使用 PHP 来捕获第 2 页上显示的 std_id。但是从数据库中显示的行数也取决于那个年级的学生人数。如果有 10 个学生,我将不得不跟踪 10 个不同的 std_id,如果有 20 个,我将有跟踪 20 个不同的 std_id。显示的每一行都包含一个不同的学生 ID... 在第 3 页中,您想显示同一年级学生列表中所选学生的详细信息,对吗? 【参考方案1】:您可以像这样修改您的代码。隐藏字段会将学生 ID 发送到 view_one_student.php 页面。
while($row = mysqli_fetch_array($result))
echo"<form action='view_one_student.php' method='post'>";
echo "<tr bgcolor = '#c0eae4n' id = 'listings'>";
echo "<td name= 'stdid'>" . $row['std_id'] . "</td>";
echo "<td>" . $row['std_name'] . "</td>";
echo '<input type="hidden" value="'.$row["std_id"].'" name="std_id">';
echo "<td>" . '<input type="submit" value="view"> <input type="submit" value="sdq">' . "</td>";
echo "</tr>";
echo "</form>";
echo "</table>";
mysqli_close($con);
在 view_one_student.php 上,您必须通过以下方式抓住它:
$_POST["std_id"]
并最终将其输入到 view_one_student.php 中的 sql 句中:
$sql = "SELECT * FROM <table> WHERE id=".$_POST["std_id"];
这就是一般的想法。
【讨论】:
我建议您不要使用 mysql api,它已被贬低。宁可使用 mysqli php.net/manual/en/book.mysqli.php【参考方案2】:page2.php
您必须在 page2 中添加带有学生 ID 的 hidden input
。
<input type="hidden" value="'.$row["std_id"].'" name="std_id">
将您的 action
页面更改为 page3(如果您想在此处显示学生信息:姓名、年龄...)
<form action='page3.php' method='post'>page2.php
page2的代码:
<?php
//database variables
require_once('admin_settings.php');
//these variables are from a form used to display the current data
$level = $_POST['level_group'];
$room = $_POST['room_group'];
$con=mysqli_connect("$host","$dbuser","$dbpass","$dbname");
mysqli_set_charset($con, "utf8");
// Check connection
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
$result = mysqli_query($con,"SELECT std_id, std_name FROM students WHERE std_level LIKE '$level%' AND std_room LIKE '$room';");
//table
echo"
<table border='1' id='mytable'>
<tr bgcolor = #99CCFF>
<th><b>Student ID</b></th>
<th><b>Name</b></th>
<th><b>Action</b></th>
</tr>";
//loop through the database
while($row = mysqli_fetch_array($result))
echo"<form action='page3.php' method='post'>";
echo "<tr bgcolor = '#c0eae4n' id = 'listings'>";
echo "<td name= 'stdid'>" . $row['std_id'] . "</td>";
echo "<td>" . $row['std_name'] . "</td>";
echo "<td> <input type='hidden' value='" . $row["std_id"] . "' name='std_id'>";
echo "<input type='submit' value='view'>";
echo "<input type='submit' value='sdq'></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
mysqli_close($con);
?>
page3.php
page3 的一个可行解决方案是:(添加您需要的列:年龄、地址、电话......)
<?php
//database variables
require_once('admin_settings.php');
//these variables are from a form used to display the current data
$id = $_POST['std_id'];
$con=mysqli_connect("$host","$dbuser","$dbpass","$dbname");
mysqli_set_charset($con, "utf8");
// Check connection
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
$result = mysqli_query($con,"SELECT * FROM students WHERE std_id ='$id';");
echo '<h3>Student detail</h3>';
//table
echo"
<table border='1' id='mytable'>
<tr bgcolor = #99CCFF>
<th><b>Student ID</b></th>
<th><b>Name</b></th>
<th><b>Age</b></th>
</tr>";
//loop through the database
while($row = mysqli_fetch_array($result))
echo "<tr bgcolor = '#c0eae4n' id = 'listings'>";
echo "<td name= 'stdid'>" . $row['std_id'] . "</td>";
echo "<td>" . $row['std_name'] . "</td>";
echo "<td>" . $row['std_age'] . "</td>";
echo "</tr>";
echo "</form>";
echo "</table>";
mysqli_close($con);
?>
【讨论】:
非常感谢兰..你真棒。不知道地球上是否还有像你这样的人!!! :) 有美好的一天@TeachaKyng!以上是关于使用 PHP 从 mysql 显示的可点击数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 React 从 DB 中删除数据,并点击我使用 php 和 mysql 创建的 rest API?
使用 PHP 从 MySQL 数据库中获取数据,以表格形式显示以进行编辑
jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?