【问题标题】:How to filter a mysql database with user input on a website and then spit the filtered table back to the website?如何在网站上使用用户输入过滤 mysql 数据库,然后将过滤后的表吐回网站?
【发布时间】:2012-09-30 11:22:06
【问题描述】:

我已经在谷歌上研究了 3 周,绞尽脑汁,仍然没有找到任何东西。我不敢相信这是如此难以捉摸。 (我是一个完整的初学者,所以如果我的术语听起来很愚蠢,那就是原因。)

我的虚拟主机上的 mysql/phpmyadmin 中有一个数据库。 我正在尝试创建一个前端,允许用户以他们不必知道 sql 的方式指定查询数据库的条件,基本上只是表单上的组合框和复选框。 然后让这个表单向数据库“提交”一个查询,并显示过滤后的表。

这是 SQL 在 Microsoft Access 中的外观:

PARAMETERS TEXTINPUT1 Text ( 255 ), NUMBERINPUT1 IEEEDouble;
// pops up a list of parameters for the user to input

SELECT DISTINCT Table1.Column1, Table1.Column2, Table1.Column3,*
// selects only the unique rows in these three columns

FROM Table1
// the table where this query is happening

WHERE (((Table1.Column1) Like TEXTINPUT1] AND ((Table1.Column2)<=[NUMBERINPUT1] AND ((Table1.Column3)>=[NUMBERINPUT1]));
// the criteria for the filter, it's comparing the user input parameters to the data in the rows and only selecting matches according to the equal sign, or greater than + equal sign, or less than + equal sign

我没有得到什么:我应该使用世界上的什么(这并不难)!?

我尝试过 google 融合表格 - 不能正确过滤数字数据或行中的空单元格,无法关联表格

我已经尝试过 DataTables.net,无法正确过滤数字数据,并且如果没有大量深入的知识就无法使用 SQL,甚至不确定它是否可以......

我已经研究过将 jQuery 与 google 电子表格一起使用,但也完全不起作用

我不知道应该如何使用我的数据库构建前端。每个看起来很有前途的地方(比如 zohocreator)都在要钱,而且过于简单,无法执行 LIKE 标准或 SELECT DISTINCT 的东西。

【问题讨论】:

    标签: mysql database web-applications web-hosting


    【解决方案1】:

    我假设您在服务器上有 php 和 MySQL,并且将使用 HTML 和 ajax 作为前端。您的示例的简化方案是。

    HTML 有 3 个输入并将 ajax 请求发送到 php 文件。

    php有

    // Get parameters from URL
    $input1 = $_GET["input1"];
    $input2 = $_GET["input2"];
    $input3 = $_GET["input3"];
    //connect to database
    
     $query = sprintf("SELECT *  FROM tablename WHERE column = %s  AND column2 <= %s AND column3 = >%s",$input1,$input2,input3); 
    

    然后执行此查询。

    可以通过分块构建更复杂的查询。

    如果这是您正在寻找的,我可以详细说明整个技术

    【讨论】:

    • 是的 php 和 mySQL 在服务器上,我将尽我所能作为前端。虽然我是全新的,但绝对不会手动编写代码,正在寻找一种半可视化的方式来创建这个应用程序。我发布的内容过于简单化,实际上我正在处理数百个表和数十万行。
    • 此方案是 phpMyAdmin 中可用功能的简化版本。显然,您的应用程序会有所不同。如果你给我一些基本的细节,我可以运行一个演示
    • +1,如果您使用 php ext/mysql 或 ext/mysqli 连接器,请记住转义您的字段以避免 SQL 注入。
    猜你喜欢
    • 1970-01-01
    • 2021-01-01
    • 2019-02-07
    • 2019-11-11
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    相关资源
    最近更新 更多