Php 仅当单击类别链接时获取类别id
我需要一些关于这个php文件的帮助 我将首先解释我需要做什么: 我有主要的产品类别。当你点击一个类别时,你会被带到一个包含所点击类别的子类别的页面,这部分工作正常。我现在需要它,这样当您单击一个子类别时,该子类别的所有产品都会加载到同一页面上的一个div中(使用带有刷新的php…) 我将发布我的代码并对其进行注释,以解释问题Php 仅当单击类别链接时获取类别id,php,Php,我需要一些关于这个php文件的帮助 我将首先解释我需要做什么: 我有主要的产品类别。当你点击一个类别时,你会被带到一个包含所点击类别的子类别的页面,这部分工作正常。我现在需要它,这样当您单击一个子类别时,该子类别的所有产品都会加载到同一页面上的一个div中(使用带有刷新的php…) 我将发布我的代码并对其进行注释,以解释问题 <?php include 'connect.php'; $cat_id = intval($_GET['category']); //GETS THE CA
<?php
include 'connect.php';
$cat_id = intval($_GET['category']); //GETS THE CAT_ID OF THE CLICKED CATEGORY LINK
$sql = mysqli_query($link, "SELECT * FROM subcategories WHERE cat_id = $cat_id AND
status = 1");
$output = '';
while($row = mysqli_fetch_array($sql)){
$data = $row['image'];
$file = substr($data, strpos($data, "/") + 1);
$output .= "<div class='subcats'>";
$output .= "<a href='cats.php?subcategory=" . $row['subcat_id'] . "'>
<img src='$file' />"; //WHEN I CLICK ON A SUBCAT, I GET AN ERROR OF
'UNDEFINED' FOR CATEGORY. NO CATEGORY IS BEING CLICKED. HOW DO I GET IT TO LOOK FOR A
CATEGORY ONLY IF ONE IS CLICKED?
$output .= "<div class='maincatheadings'>{$row['subcategory']}</div>";
$output .="</a>";
$output .= "</div>";
}
echo $output
?>
在while循环之前使用一个简单的检查,结果计数为0,然后查找产品并将其分配给结果:
$result = $mysqli->query($sql_quer);
$num_rows = $result->num_rows;
if($num_rows === 0)
{
$sql = mysqli->query("SELECT * FROM products WHERE cat_id = $cat_id AND
status = 1");
}
在while循环之前使用一个简单的检查,结果计数为0,然后查找产品并将其分配给结果:
$result = $mysqli->query($sql_quer);
$num_rows = $result->num_rows;
if($num_rows === 0)
{
$sql = mysqli->query("SELECT * FROM products WHERE cat_id = $cat_id AND
status = 1");
}
因为在第二次单击时,您正在重新加载新值,而类别不在新集合中
$output .= "<a href='cats.php?subcategory=" . $row['subcat_id'] . "'>
因为在第二次单击时,您正在重新加载新值,而类别不在新集合中
$output .= "<a href='cats.php?subcategory=" . $row['subcat_id'] . "'>
您需要类别ID来显示子类别列表,因此不能完全跳过类别ID。我认为有两种方法可以解决这个问题:
您可以在每个链接上提交类别
以及子类别
如果未设置类别
,但存在子类别
,则可以通过搜索选定子类别的父类别从数据库中检索该类别
选项2比选项1更可靠,因为它不能被操纵到错误的参数集中。(如果你不确保先完成所有必要的检查,人们可能会操纵URL并导致奇怪的事情发生。)
<>我仍然会考虑更改代码,因为在没有提交的类别ID的情况下,您现在没有错误处理。 您需要类别ID来显示子类别列表,所以完全跳过类别ID是不可能的。我认为有两种方法可以解决这个问题:
您可以在每个链接上提交类别
以及子类别
如果未设置类别
,但存在子类别
,则可以通过搜索选定子类别的父类别从数据库中检索该类别
选项2比选项1更可靠,因为它不能被操纵到错误的参数集中。(如果你不确保先完成所有必要的检查,人们可能会操纵URL并导致奇怪的事情发生。)
我仍然会考虑更改代码,因为在提交的类别ID不存在的情况下,您现在没有错误处理。
如我在回答中提到的……这很可能是一个坏的解决方案,因为用户使用URL会迫使应用程序显示一个已损坏的页面(或者如果添加了更多的功能,甚至可能导致问题)。.在这种情况下,用户弄乱url会完全破坏一切。。。尝试为不存在的类别使用id也会产生“中断”结果否?(如果子类别id不唯一,会发生什么情况,因为取决于类别id?没有数据库描述,我只是在解决当前问题)正如我在回答中提到的…这很可能是一个糟糕的解决方案,因为弄乱URL的用户可能会迫使应用程序显示一个已损坏的页面(如果添加更多功能,甚至可能导致问题)。在这种情况下,弄乱URL的用户可能会完全损坏所有内容。。。尝试为不存在的类别使用id也会产生“中断”结果否?(如果子类别id不唯一,会发生什么情况,因为取决于类别id?没有数据库描述,我只是在解决当前问题)