gpt4 book ai didi

php - MySQL 和 PHP - 让 href 记住以前的变量

转载 作者:行者123 更新时间:2023-11-30 22:58:36 26 4
gpt4 key购买 nike

我是 PHP 的新手,但对 JavaScript 有所了解。

我正在尝试构建一个 MySQL 表,该表具有可按标题排序的列,我通过浏览网络等设法弄清楚了这一点;但随后希望 SQL 查询使用 WHERE 子句,该子句仅显示满足该子句的行(并且有效),但问题是当我对列进行排序时,它会返回到 $catergory 变量的原始值。

我希望这是有道理的。

有人能告诉我我做错了什么吗,如果我需要更改 SQL 查询或找到一种方法让 PHP 记住 $catergory 的重新分配值,当我想在之后对列进行排序时?

这是我的代码:

<?php
// Create connection
$con = mysqli_connect("host","user","password","database") or die("Some error occurred during connection " . mysqli_error($con));

$categoryFilter = array('boardroom', 'staffroom', 'kitchen');

$category = 'boardroom';
if (isset($_GET['categoryFilter']) && in_array($_GET['categoryFilter'], $categoryFilter)) {
$category = $_GET['categoryFilter'];
}

$orderBy = array('Image', 'Description', 'Light', 'Room');

$order = 'Image';
if (isset($_GET['orderBy']) && in_array($_GET['orderBy'], $orderBy)) {
$order = $_GET['orderBy'];
}

?>

<div class="catbuttons">
<ul>
<li><a href="?categoryFilter=boardroom">Boardroom</a></li>
<li style="height: 17px"><a href="?categoryFilter=staffroom">Staffroom</a></li>
<li><a href="?categoryFilter=kitchen">Kitchen</a></li>
</ul>
</div>


<div class="index">

<table border='1'>
<tr>
<th><a href="?orderBy=Image&categoryFilter=<?php echo($category);?>">Image</a></th>
<th><a href="?orderBy=Description&categoryFilter=<?php echo($category);?>">Description</a></th>
<th><a href="?orderBy=Light&categoryFilter=<?php echo($category);?>">Light</a></th>
<th><a href="?orderBy=Room&categoryFilter=<?php echo($category);?>">Room</a></th>
</tr>


<?php


$result = mysqli_query($con,"SELECT * FROM officeindex WHERE Room='".$category."' ORDER BY ".$order)
or die("Error: ".mysqli_error($con));

while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" , $row['Image'] , "</td>";
echo "<td>" , $row['Description'] , "</td>";
echo "<td><img src='" , $row['Light'] , "'></td>";
echo "<td>" , $row['Room'] , "</td>";
echo "</tr>";
}

echo "</table>";
?>

编辑:

谢谢大家,我已经对我的原始问题实现了您建议的解决方案并更改了上面的代码,但我现在遇到了更多困难。我的代码的目的是构建一个交互式产品列表。现在我已经有了类别(感谢您指出拼写错误),我希望表格首先显示所有类别,即列表中的所有产品,然后用户点击特定类别。

另一个问题是我不知道如何处理包含多个类别的单元格(有些产品属于多个类别)。

我考虑过使用数组、循环或 bool 值或某种类型来执行上述两项操作,但我的知识仅限于 JavaScript,而且我对 PHP 有点迷茫,尽管它们有相似之处。请原谅我的无知。

我希望我已经解释清楚了

谁能帮帮我?

最佳答案

您的表头中的链接仅包含 orderBy 参数。如果您想保留 categoryFilter,则需要将其包含在 header 的 href 中。

例如:

<tr>
<th><a href="?orderBy=Image&catergoryFilter=<?php echo($catergory);?>">Image</a></th>
<th><a href="?orderBy=Description&catergoryFilter=<?php echo($catergory);?>">Description</a></th>
<th><a href="?orderBy=Light&catergoryFilter=<?php echo($catergory);?>">Light</a></th>
<th><a href="?orderBy=Room&catergoryFilter=<?php echo($catergory);?>">Room</a></th>
</tr>

对于类别过滤器,当然是相反的:

<li><a href="?catergoryFilter=boardroom&orderBy=<?php echo($order);?>">Boardroom</a></li>
<li><a href="?catergoryFilter=staffroom&orderBy=<?php echo($order);?>">Staffroom</a></li>
<li><a href="?catergoryFilter=kitchen&orderBy=<?php echo($order);?>">Kitchen</a></li>

此外,正如@K.K.Smith 指出的那样,您可能希望将 category 替换为 category

关于php - MySQL 和 PHP - 让 href 记住以前的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25093942/

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