【问题标题】:Filtering DB Results Using jQuery and PHP使用 jQuery 和 PHP 过滤数据库结果
【发布时间】:2011-11-20 16:22:05
【问题描述】:

我刚刚开始创建我的第一个网站,该网站由数据库支持(这也是我的第一个数据库)。由于我完全没有经验,我不知道是否应该依赖 jQuery 或 PHP 来完成特定任务,并希望有人能够提供一些见解。 (这是一个“最佳实践”问题。)

在“文件”表中,有 6 个字段和大约 50 行。用户会看到表格中的所有信息,并且能够应用过滤器(通过复选框)来操纵数据的显示方式。例如,如果选中了 category = DNAkeyword = assay 框,则 php 脚本会选择 db 中字段 category 的那些行和 keyword 的值分别为 DNAassay,。然后,此信息作为 JSON 对象返回到 jQuery 脚本,用于格式化和插入 DOM(我使用了 $.getJSON)。

到目前为止,这工作得很好。但是,在读取对数据库的“太多”查询会导致性能损失时,我编写了一个新的 jQuery 脚本,该脚本在文档加载后立即从“文件”表中获取所有信息。此信息分布在 6 个不同的数组中(即 category[ ]keyword[ ],给定行的索引在所有 6 个数组中都相同)。然后,如果应用与上述相同的过滤器,我将搜索 category[ ]keyword[ ] 数组。如果在 category[ i ] 中找到字符串 DNAassay,则显示与索引 i 相关的信息和关键字[i]

显然,第二种方法减少了对数据库的查询次数。但是,对我来说感觉“错误”,因为我使用 jQuery 来处理不完全是“行为”的东西,而且我怀疑 jQuery 搜索数组的速度与 MySQL 在表中查找行的速度一样快。测试该站点的两个版本,它们似乎表现同样出色,但我只能在本地测试该站点。我想如果表变得非常大,jQuery 版本将变得不那么可行,但它不太可能超过 100 行。

如果您有任何建议,在决定我应该实施哪个选项时,我将不胜感激。提前感谢您的意见,我希望您能接受我对我这么一个菜鸟的歉意!

【问题讨论】:

    标签: php jquery mysql database json


    【解决方案1】:

    您必须权衡在 AJAX 版本中对服务器的来回调用与客户端操作。尽管您的由内而外的哈希方法(具有共享键的多个数组)没有任何问题,但您很有可能可以根据类过滤行并使用 jQuery 来显示/隐藏它们。

    <li class="dna assay">blah...</li>
    

    还有其他地方……

    $('#dnacheckbox').click(function(){ $('.dna').toggle() });
    

    就个人而言,我不认为您对 jQuery 所做的不是行为 - 排序和过滤是经典的用户交互。

    如果您可以自信地说行数将保持在几百以下,我​​建议您选择客户端选项。最终用户肯定会感觉更快捷。

    我不确定您是如何呈现数据的,但在您进行过多的车轮研发之前,请先查看DataTables

    【讨论】:

    • 乐于助人。如果它解决了您的问题,请记住勾选答案和/或投票。这就是这个网站的运作方式。
    【解决方案2】:

    使用 6 个字段和大约 50 行,您可以做任何您想做的事情 - 使用 jquery 或 PHP 或 PHP 和 jquery。完全没有区别。

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 2016-11-08
      • 2012-02-01
      • 2012-03-10
      相关资源
      最近更新 更多