gpt4 book ai didi

php - 动态 PHP 表过滤和排序

转载 作者:行者123 更新时间:2023-11-29 02:11:33 24 4
gpt4 key购买 nike

我编写了一些 CSS 和 PHP 来查询 MySQL 表。我还有一个下拉框形式的过滤器,允许用户选择一个“系列”,无论是“电容器”、“电阻器”还是“铁氧体磁珠”(我在下面提供了有关此内容的图片)好像)。

我的问题是:一旦按族过滤元素,如何为元素创建排序系统?也就是说,如果我想从 MySQL 中查询与“电压”的 ASC 值对应的表,我该怎么做?当选择排序方法时,我需要保留过滤器。到目前为止,我已将我的代码包含在图像下方。感谢您的帮助!

(如下:1,加载完整表格:2,仅加载与“capacitor”匹配的系列条目)

enter image description here

enter image description here

代码:(文件名,index.php)

<html>
<form action="index.php" method="post">
<select name="family">
<option value="" selected="selected">Any family</option>
<option value="capacitor">capacitor</option>
<option value="resistor">resistor</option>
<option value="ferrite bead">ferrite bead</option>
</select>
<input name="search" type="submit" value="Search"/>
</form>
<head>
<meta charset = "UTF-8">
<title>test.php</title>
<style>
table {
border-collapse: collapse;
width: 50%;
}
th, td {
input: "text";
text-align: left;
padding: 8px;
}
th {
background-color: SkyBlue;
}
tr:nth-child(odd) {background-color: #f2f2f2;}
tr:hover {background-color: AliceBlue;}
</style>
</head>

<body>
<p>
<?php
$family = "";
if(isset($_POST['family'])) {
$family = $_POST['family'];
}

try {
$con= new PDO('mysql:host=localhost;dbname=mysql', "root", "kelly188");
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

if(!empty($family)) {
$query = 'SELECT * FROM testv2 WHERE family = "'.$family.'"';
}
else {
$query = "SELECT * FROM testv2";
}

//first pass just gets the column names
print "<table>";
$result = $con->query($query);

//return only the first row (we only need field names)
$row = $result->fetch(PDO::FETCH_ASSOC);
print " <tr>";
foreach ($row as $field => $value){
print " <th>$field</th>";
}
// end foreach
print " </tr>";

//second query gets the data
$data = $con->query($query);
$data->setFetchMode(PDO::FETCH_ASSOC);
foreach($data as $row){
print " <tr>";
foreach ($row as $name=>$value){
print " <td>$value</td>";
} //end field loop
print " </tr>";
} //end record loop
print "</table>";
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
} // end try
?>
</p>
</body>

</html>

最佳答案

数据表 https://datatables.net/也真的很酷。正常功能是使用 JavaScript,但您可以将其配置为使用服务器资源并处理服务器上的日期并仅显示结果。一旦掌握了窍门,一切就变得非常简单。

每次您订购或过滤数据时,数据表都会发送一个包含所有必要信息的数组,因此您只需扫描该数组并相应地生成查询即可。

关于php - 动态 PHP 表过滤和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com