Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何向现有搜索结果添加筛选器_Php_Sql - Fatal编程技术网

Php 如何向现有搜索结果添加筛选器

Php 如何向现有搜索结果添加筛选器,php,sql,Php,Sql,背景: 我目前有一个设置,人们可以在页面上看到他们没有的BB卡。我希望他们能够过滤掉现有的列表来缩小范围 如何在现有的搜索结果中添加一个带有PHP的过滤器,以便他们能够对其进行分解?以下是我现有的相关代码: <div id="col2"><br><br><center>Your Baseball Cards<center><br><br><br> <?php $servername = "***

背景: 我目前有一个设置,人们可以在页面上看到他们没有的BB卡。我希望他们能够过滤掉现有的列表来缩小范围

如何在现有的搜索结果中添加一个带有PHP的过滤器,以便他们能够对其进行分解?以下是我现有的相关代码:

<div id="col2"><br><br><center>Your Baseball Cards<center><br><br><br>
<?php
$servername = "********";
$username = "******";
$password = "*******";
$dbname = "*******";
$username1=$_SESSION['activeusername'];
    $userid = $_SESSION['activeid'];
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT * FROM useritems JOIN (users, iteminfo) on (users.id=useritems.UserID AND iteminfo.ID=useritems.ItemID) AND userid!='$userid' LIMIT 100";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "<a href='iteminfo.php?id=". $row['id']."'><div id='frame'>
<div id='splash-image' style='background: url(".$row['imagename']."); background-size:cover;'></div>
<div id='text'>
<table >
<tr>
    <td>Player:</td>
    <td>".$row["player"]."</td>
</tr>
<tr>
    <td>Brand:</td>
    <td>".$row["brand"]."</td>
</tr>
<tr>
    <td>Year:</td>
    <td>".$row["year"]."</td>
</tr>
<tr>
    <td>Price:</td>
    <td>".$row['price']."</td>
</tr>
</table>
</div>
</div>";
    }
} else {
    echo "You Have No Baseball Cards!!!";
}

mysqli_close($conn);
?>
</div>

<div id="col3">column 3</div>

<div id="footer">footer</div>

</body>
</head>
<html> 

我不太确定你想要过滤什么,但我假设你的意思是用户可以根据玩家、品牌、年份等进行过滤。如果是这样,那么你可以在SQL语句中添加WHERE子句

下面是一个使用按玩家过滤的示例,假设您有一个元素和一个表单要提交

$where_clause = "AND player='" . filter_var($_POST['player'], FILTER_SANITIZE_STRING) . "'";

$sql = "SELECT * FROM useritems JOIN 
(users, iteminfo) ON (users.id=useritems.UserID AND iteminfo.ID=useritems.ItemID)
WHERE userid != '$userid' $where_clause LIMIT 100";

如果需要,您可以在具有多个输入的循环中执行此操作,并将用户输入的任何附加筛选器附加到WHERE子句。

您可以提供输入数据和预期结果的示例,以及当前发生的情况吗?现在要确定你的目标有点难。@RobbieAverill我在这方面真的很差……让我试着解释一下,也许你不能给我指出正确的方向。现在,当人们访问此页面时,他们会被一堆他们没有的BBCard丢弃!=搜索…当人们注册卡片时,浏览变得难以管理。我想设置一些东西来过滤所有他们没有的卡。我不知道我是在寻找一个常规的搜索功能,还是一个过滤现有搜索结果的特殊功能Brian,谢谢!有没有办法让用户通过HTML进行过滤?我不确定我是否理解你的问题。他们想筛选哪些字段?你可以使用一个简单的形式:Player:Brand:我显然没有很好地解释这一点…Player,Brand,是的,Price…所以现在他们可以滚动,就像棒球卡的pintrest feed…但是假设他们想要一个Andre Dawson,1989年的Fleer卡…我希望他们能够过滤到一边,并使用表格过滤,看看是否有人说他们有一张。我遇到的困难是,一旦页面提供了您在上面看到的搜索结果,我不知道如何让用户过滤搜索结果以使其更具管理性。Gableyou需要使用Javascript来做到这一点。如果您不想下载整个列表来显示页面,那么还需要使用AJAX发送过滤请求。Pinterest等网站使用AJAX动态加载和过滤结果。AJAX请求可以与PHP服务器进行对话,PHP服务器执行实际的查询。谢谢Brian,我希望这不是一条路线……有很多东西需要学习