-2

我正在创建一个网站,可以查询表格中的所有产品以显示在我的页面上。在左侧边栏中,它还像这样显示颜色和价格

颜色

黄色 (3)

白色 (9)

棕褐色 (1)

红色 (3)

紫色 (1)

粉红色 (7)

橙色 (1)

多 (1)

绿色 (8)

棕色 (1)

蓝色 (3)

黑色 (3)

价格

25 美元以下 (4)

$25-$50 (4)

2/40 美元 (22)

2/50 美元 (10)

3/33 美元 (1)

所以我使用 COUNT 和 GROUP BY 来显示它。我想点击一种颜色或一种价格,它会缩小产品范围。所以说我点击黑色我希望它能够只查询3个黑色产品

这是表中所有产品的我的 php

  <?php
$dynamicList ="";
$sql = mysql_query("SELECT * FROM test2 LIMIT");
$productCount = mysql_num_rows($sql);
 if ($productCount > 0) {
   while($row = mysql_fetch_array($sql)){
      $product_name = $row["product_name"];
      $image_url = $row["image_url"];
      $category = $row["category"];
      $subcategory = $row["subcategory"];
      $sub_subcategory = $row["sub_subcategory"];
      $price = $row["price"];
      $color = $row["color"];
      $page_url = $row["page_url"];
    $dynamicList .= '<div id="products">

  <table width="24%" height="339" border="0" align="left" cellpadding="0">
  <tr>
  <td height="150" align="center" valign="bottom"><a href="'.$page_url.'"     target="_blank"><img src="'.$image_url.'" Hspace="5" Vspace="10" width="140" height="210" /></a></td>
   </tr>
  <tr>
  <td height="90" align="center" valign="top"><p><a href="'.$page_url.'" target="_blank">'.$product_name.'<br /><b><font size="3"><font color="#FF0000">'.$price.'</font> </font></b></a></p></td>
   </tr>
  </table></div>';


}
} else {
$dynamicList = "<b>There are currently no items</b>";
 }
?>

这是我希望能够链接的左侧边栏上显示的颜色和价格的 php

<?php echo 
$sidebar_color ="";
$sql = mysql_query("SELECT *,COUNT(color) FROM test2 GROUP BY color ORDER BY color         DESC");
$productCount = mysql_num_rows($sql);
if ($productCount > 0) {
while($row = mysql_fetch_array($sql)){

   $color = $row["color"];

    $sidebar_color .= '<div id="sidebar"><p><font size="-2"><a   href="index.php?'.$color.'">'.$color.' ('.$row["COUNT(color)"].')</a>
                    </font></p></div>';
}
}
?>
 <?php echo 
$sidebar_price ="";
 $sql = mysql_query("SELECT *,COUNT(sidebar) FROM test2 GROUP BY price ORDER BY price ASC");
  $productCount = mysql_num_rows($sql);
 if ($productCount > 0) {
  while($row = mysql_fetch_array($sql)){

    $price = $row["price"];

    $sidebar_price .= '<div id="price"><p><font size="-2"><a href="index.php?'.$price.'">'.$price.' ('.$row["COUNT(price)"].')</a>
            </font></p></div>';
}
}
?>

嗨,布莱恩,感谢您的评论。我无法让它工作。它不断出现错误。这也是我页面上显示的代码

<div id="side"
 <ul>
 <p>_____________</p>
 <p><font size="3"><b>COLOR</b></font></p>
 <font size="-2"><li><?php echo $sidebar_color; ?></li>
 </font></ul>

  <ul>
 <p>_____________</p>
 <p><font size="3"><b>PRICE</b></font></p>
 <font size="-2"><li><?php echo $sidebar_price; ?></li>
 </font></ul>


 </div>
  </td>


  <td width="80%" valign="top"><p>

  <?php echo $dynamicList; ?><br />


  </p></td>

因此,当我再次单击说黑色时,我需要显示 $dynamicList 但只显示黑色产品。

我希望这一切对你有意义。我对此很陌生。因此,非常感谢任何帮助。

4

1 回答 1

1

替换此行(与价格相同)

<a href="index.php?'.$color.'">

<a href="index.php?color='.$color.(isset($_GET['price'])?'&price='.$_GET['price']: '').'">

然后您可以使用 $_GET['color'] 和 $_GET['price'] 来设置查询以显示产品,即...

$options = array();
(isset($_GET['price']) ? $options[] = "price='".mysql_real_escape_string($_GET['price'])."'" : '' );
(isset($_GET['color']) ? $options[] = "color='" mysql_real_escape_string($_GET['color'])."'" : '' );
$query = "SELECT * FROM `table` WHERE ".implode(' AND ', $options);

仅供参考的 mysql 函数也应替换为mysqli

于 2013-05-18T20:01:23.633 回答