php - PHP按域名排序数据库
问题描述
我有一个问题,我必须从数据库中取出域名,并创建一个knokpu,我可以使用它按此域对数据库进行排序,也就是说,如果我点击gmail按钮,那么应该对带有gmail的用户进行排序,如果有 yahoo 用户,那么当您单击 yahoo 按钮时,也会执行排序。问题是我不知道如何正确地将按钮与排序相关联......我将非常感谢您的帮助。
这是我的php代码。
<!DOCTYPE html>
<html>
<head>
<title>Display all records from Database</title>
</head>
<body>
<h2>All emails</h2>
<table border="2">
<tr>
<td>Sr.No.</td>
<td>E-mail</td>
<td>Delete</td>
<td>CSV</td>
</tr>
<a href="?orderBy=email">
<button>Sort By E-mail</button>
</a>
<a href="?orderBy=date">
<button>Sort By Date</button>
</a>
<a href="?orderBy=">
<button>Export as CSV</button>
</a>
</br>
<?php
include "php/server.php"; // Using database connection file here
$orderBy = array('email', 'date'); // create array of sort options
$order='date'; // default sort option
if (isset($_GET['orderBy']) && in_array($_GET['orderBy'], $orderBy)) {
$order = $_GET['orderBy'];
} // change sort option depending on $order
$query = 'SELECT * FROM users ORDER BY '.$order;
$records = mysqli_query($db, $query); // fetch data from database
$dom=array();
include "php/search.php"; //include search engine
if(isset($_POST["submit"])){ //if button is pressed fecth data from search
$records = mysqli_query($db, $searchquery);
}else{ //if not fecth data from db
$records = mysqli_query($db, $query);
}
while($data = mysqli_fetch_array($records))
{
$parts = explode('@', $data['email']);
$domain = array_pop($parts);
?>
<tr>
<td><?php echo $data['email']; ?></td>
<td><?php echo $data['date']; ?></td>
<td><a href="php/delete.php?id=<?php echo $data['id']; ?>">Delete</a></td>
<td><a><input type="checkbox" id="horns" name="horns"></td>
<td><?php echo $domain; ?></td>
</tr>
<tr>
<input type="submit" name="<?php $domain; array_push($dom,$domain)?>" value="<?php echo $domain; ?>">
</tr>
<?php
}
var_dump($dom);
?>
<h3>Emails is sorting by:<?php echo $order ?></h3>
</table>
</body>
</html>
设计:
解决方案
我认为您的意思是,您想根据单击的电子邮件提供商按钮过滤数据?
您可以像这样添加 HTML:
...
<a href="?filterBy=gmail.com">
<button>gmail.com</button>
</a>
<a href="?filterBy=inbox.lv">
<button>inbox.lv</button>
</a>
<a href="?filterBy=yahoo.lv">
<button>yahoo.lv</button>
</a>
...
在 PHP 中,您需要更新这一行:
...
if (isset($_GET['orderBy']) && in_array($_GET['orderBy'], $orderBy)) {
$order = $_GET['orderBy'];
}
$filter = "";
if (isset($_GET['filterBy'])) {
$filter = "WHERE `email` LIKE ?";
}
$query = 'SELECT * FROM users '.$filter.' ORDER BY '.$order;
$prepare = mysqli_prepare($db, $query);
if (isset($_GET['filterBy'])) {
$param = "%".$_GET['filterBy'];
$prepare->bind_param('s', $param);
}
$prepare->execute();
// $records = mysqli_query($db, $query); // change this query to:
$records = $prepare->get_result();
...
推荐阅读
- reactjs - .htaccess 如何使用参数重定向到 index.html 但参数值与文件夹名称相同
- python - 如何在嵌套列表中搜索列表的编号并在其他嵌套列表中获取其索引?
- php - 如何在php中解码?
- javascript - 从 for 循环中水平而不是垂直打印数字
- javascript - 使用 jquery 发送文件并在 PHP 中接收(无插件)
- python-3.x - Panda returns 50x1 matrix instead of 50x7? (read_csv gone wrong)
- flutter - 将 API 文本数据传递给其他 Page Flutter
- spring-boot - 当用户进行身份验证并将其保存在安全上下文中时,我该如何处理我的 Spring Boot 资源服务器 oauth 2 从 api 获取用户的额外数据?
- javascript - 如何从 canvas.onmousemove 函数外部访问全局变量?
- c# - 实体框架 - 外键和导航属性