使用 PHP 从 mysql 显示的可点击数据

Posted

技术标签:

【中文标题】使用 PHP 从 mysql 显示的可点击数据【英文标题】:Clickable data displayed from mysql using PHP 【发布时间】:2013-09-21 13:34:46 【问题描述】:

我不太擅长 javascript,但这是我的问题。

我有三个页面:page1.phppage2.phppage3.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 上编写代码,以便当用户单击每列旁边的 viewsdq 按钮时,应捕获学生 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中的数据。

使用 PHP 从 MySQL 数据库中获取数据,以表格形式显示以进行编辑

jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?

如何使用 php 从 mysql 数据库中显示非英文字符?

如何使用 PHP 显示从 MySQL 数据库中获取的更多文本