PHP - 过滤表中的数据

时间:2011-06-10 13:09:51

标签: php mysql html

我需要有关如何过滤数据库中数据的帮助。我想要一个像excel电子表格中的过滤器。

例如,我有关于如何从w3school获取有关如何从数据库中选择数据的数据的示例代码。这是我的示例代码:

 <?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("TableTest", $con);

$result = mysql_query("SELECT * FROM Colors ");

echo "<table border='1'>
<tr>
<th>Colors</th>
<th>Type</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['colors'] . "</td>";
  echo "<td>" . $row['type'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>

enter image description here

我在w3school也发现了这个sample,但我不想用下拉列表来过滤数据库。

我想把它变成excel过滤器。当我选择“颜色”列以过滤“红色”时,它将仅显示红色。所以我想知道是否有人可以帮助我如何开始。

全部谢谢

5 个答案:

答案 0 :(得分:6)

$result = mysql_query("SELECT * FROM Colors WHERE color='Red'");

答案 1 :(得分:3)

当用户选择颜色时,使用包含他选择的颜色的$ _GET变量将其重定向到同一页面。然后,检查代码中是否存在包含颜色的$ _GET变量:

if(isset($_GET['color']))
  result = mysql_query("SELECT * FROM Colors WHERE color='".htmlentities($_GET['color'])."'");
else
  result = mysql_query("SELECT * FROM Colors");

答案 2 :(得分:2)

您需要创建一个包含列表框的表单,其中包含用户可以从中选择的颜色列表。反过来,该表单需要将变量发布回PHP然后将提供给MySQL以过滤结果表的页面。

将结果表单独过滤为红色将使用:

完成
$result = mysql_query("SELECT * FROM Colors WHERE color='Red'");

但是,基于发布到页面的表单来过滤那些需要这样的内容:

$result = mysql_query("SELECT * FROM Colors WHERE color='".mysql_escape_string($_REQUEST['color'])."'");

其中“color”是已发布到包含您要过滤的颜色名称的页面的变量的名称。

答案 3 :(得分:1)

我知道我太迟了但也许还有人在寻找解决方案。我所知道的就是你只是

$result = mysql_query("
         SELECT * FROM database_name
         WHERE Color LIKE 'Red%'
");

答案 4 :(得分:0)

我很确定你正在寻找“this”。你需要JavaScript才能工作。

基本上有3个步骤:

  1. 制作HTML表格以显示内容。
  2. 使用CSS设置该表的样式。
  3. 使用JavaScript搜索和过滤表格。
  4. 详情请参阅提供的链接。
    https://www.w3schools.com/howto/howto_js_filter_table.asp