【问题标题】:MySQL, PHP filtering results within displayed table?MySQL,PHP在显示表中过滤结果?
【发布时间】:2011-09-28 04:19:57
【问题描述】:

我已经搜索了“我认为我应该搜索的内容” - 但没有真正理解或得到任何地方,请有人指出我正确的方向吗?

我希望能够使用一列(区域)的th 过滤结果集,尽管我尝试了 w3cs 教程,但我最终对“哪些代码在哪里”等感到困惑,并且下拉表单的东西看起来很笨重。
欢迎所有建议和帮助。

这是我的示例网站,myTrader 点击左侧的 All Trade Regions 链接会显示我所拥有的所有内容,这让我花了好几天的时间学习教程和在黑暗中闲逛。

query.php 到目前为止的代码:

    <table id="mainTable">
    <tr><td width="300" valign="top"><H1>Welcome to myTrader!</H1>
    <span class="mainText">Glass & Paper Recycled Commodities Trading Site</span></td>
    <td valign="top" align="right"><img src="images/largeLogo.jpg" width="406" height="113" border="0"></td></tr></table>
    <P><span class="paraHeadingOne">All Region Paper Sales</span> </P>
    <P>
    <table class="dbTable">
<tr>
<tr><th>Commodity</th> <th>Region</th> <th>Member</th> <th>Size</th> <th>Price</th> <th>Date Posted</th>
</tr>
    <?php
    $link = mysql_connect('localhost', 'palegall', '******');
    if (!$link) {
    die('Could not connect: ' . mysql_error());
    }
    $db_selected = mysql_select_db('palegall_newTrader', $link);
    if (!$db_selected) {
        die ('cant find newTrader' . mysql_error());
    }
    $query = mysql_query ("SELECT * FROM `sell` WHERE `commodity`='Paper' ORDER BY `price`") or die( mysql_error() );
    $row=mysql_fetch_assoc($query);
    do
    {
    echo'<table class="dbTable">';
    echo '<tr><td>'.$row['commodity'].'</td>
   <td>'.$row['region'].'</td>
   <td>'.$row['member'].'</td>
    <td>'.$row['size'].'</td>
   <td>'.$row['price'].'</td>
   <td>'.$row['posted'].'</td>
   </tr>';
    }while($row=mysql_fetch_assoc($query));
    echo "</table>";
    ?>
  </td></tr></table>
  </td></tr></table>
  </body></html>

【问题讨论】:

  • 我们需要更多信息:您创建了哪些表?你想要什么结果?提供一个简短的示例(整个网站不是示例)...
  • Sorry Scorpi0 - 只想使用显示的两个表格 - (sell & buy) - 所有数据需要首先出现,然后让用户单击区域标题和一些可用的过滤方法,我还没有过滤器部分的任何代码,但可以在这里发布我的 query.php 代码 - 呃,我该怎么做?

标签: php html mysql filter html-table


【解决方案1】:

要过滤结果,您需要在查询末尾添加WHERE columnName = 'desiredValue'。或者,您可以使用ANDOR 指定多个条件,例如:

 WHERE columnName = 'possibleValue' OR columnName = 'otherPossibleValue'

【讨论】:

  • 你好 EdoDodo - 谢谢,如上所述,我需要先显示所有结果,然后用户才能过滤它们 - 所以我猜我需要两个查询,第一个显示所有结果, & 第二个(我不知道在哪里放置或如何构建)我的第二个查询会与结果“存在”在同一页面上吗?非常感谢:)
【解决方案2】:

我想我知道你的意思,
您是否尝试过使用查询的 WHERE 区域。这可以改变返回的结果数量。

我有类似的东西,除了它被标记的位置。我有两个想法,首先,一个表格,每列都有一个 tinyint,每一个都是一个特定的区域。或者另一种,其中只有一个额外的列,其中特定区域的空格分隔值。那是我使用的一个查询,类似于

SELECT * FROM 'items' WHERE `locations` LIKE '% $area %'

只要字符串的开头总是有一个空格,它就可以允许单个项目有多个选项,而无需加载大量查询和大量内存来筛选数据。

在这种情况下,包含的数据是

ID    标题        位置
1      测试 1    空白
2      测试 2     伦敦萨里

当只搜索 london 时,会显示“test 2”

希望有帮助

【讨论】:

  • 你好克里斯,谢谢你,我需要先显示所有结果,然后让用户点击选择一个区域,我尝试使用单独的链接,但它非常笨重,只是想知道是否有一个“in表”的过滤方式?或者要添加的东西(如下所示,虽然还没有尝试过!) - :)
  • 你的意思是 AJAX 吗?因为您可以让它使用从 PHP 文件加载的新表重新填充目标区域,该文件具有目标区域的 GET 变量。即使它不是 ajax,您也可以有一个没有 WHERE 标记的通用查询并将它们全部显示出来,在顶部(列标题下)有单独的链接或文本框,可以搜索某些区域。您需要激活某种反 sql 注入代码来保护您的数据库。
  • 嘿,克里斯,谢谢 - 是的,我想这就是我所追求的?我查看了两个教程,其中包括一个 ajax 下拉内容和在查询页面上实现的脚本,(我无法让它工作)我真的不明白在哪里“放置”与页面上的查询等相关的东西 - 抱歉吸收有点慢!基本上我只想要一个简单的用户点击并允许他们选择区域 - 不关心如何,只要我能让它工作 LOL,
  • 好吧,要么有一个填充区域列表的下拉选择框,要么有一个用于搜索的文本框。这可能在表标题的下一行,然后在 div 标记下面有第二个表,其 ID 为新内容,然后使用 getElementById('newcontent') 使用 AJAX 响应更改内部 html。单击按钮或进行更改但在最后 2 秒内没有更改时进行调用。这会向“/newcontent.php?searchfield=”发送一个请求,然后是文本框的内容或选择。 PHP 然后接受它,SQL 的它并返回一个表
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2023-04-10
  • 1970-01-01
  • 2011-10-05
  • 2021-12-06
  • 2016-07-30
  • 1970-01-01
相关资源
最近更新 更多