我有一个小问题.我正在与一些未经过编程/数据库设计的手动测试人员合作.我们当前的流程意味着这些手动测试人员需要在特定时间将数据插入我们的数据库,同时我们构建GUI以便将来实现此目的.
在此期间,我想创建一个简单的网站.我想对网站做的只是简单地连接到我们的数据库,允许手动测试人员输入一些关键字,并返回表格中与所提供的关键字相近/相关的任何列.这将为我们的测试人员在我们(相当大的)数据库中搜索colums节省大量时间.
我怎么能创建这样的网站?我认为它可能对很多人有用,所以我决定在这里发布问题以收集StackOverflow的想法.
目前,我正在考虑一个带有文本框的简单PHP页面,它允许用户输入一些以逗号分隔的数据.基于逗号分解数据,将其保存在数组中.连接到我的数据库,然后使用Information Schema View检索列信息.
我的主要问题是 – 使用信息架构视图检索与用户输入的关键字相关的列的最有效方法是什么?如何确保返回的列最合适?
这里的任何输入将不胜感激.非常感谢.
Tl; dr是粗体部分,适合忙碌的人:)
我认为你可以用一个简单的形式实现这一点,一些ajax调用使用key up.
下面是一个简单的示例,其中每次用户在他们搜索的列名中输入一个字母时,列表都会更新.
下面是一个简单的示例,其中每次用户在他们搜索的列名中输入一个字母时,列表都会更新.
的index.html
<!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript"> $(document).ready(function() { $("#faq_search_input").keyup(function() { var faq_search_input = $(this).val(); var dataString = 'keyword='+ faq_search_input; if(faq_search_input.length>1) { $.ajax({ type: "GET",url: "ajax-search.PHP",data: dataString,success: function(server_response) { document.getElementById("searchresultdata").style.display = "block"; $('#searchresultdata').html(server_response).show(); } }); }return false; }); }); </script> </head> <body> <div class="searchholder"> <input name="query" class="quicksearch" type="text" id="faq_search_input" /> <div id="searchresultdata" class="searchresults" style="display:none;"> </div> </div> </body> </html>
接下来我们需要一个脚本来执行搜索
Ajax的的search.PHP
//you must define your database settings define("DB_HOST","FOO"); define("DB_USERNAME","BAR"); define("DB_PASSWORD","YOUR PASSWORD"); define("DB_NAME","DATABASE NAME"); if(isset($_GET['keyword'])) { $search = new MysqLi(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME); if ($search->connect_errno) { echo "Failed to connect to MysqL: (" . $search->connect_errno . ") " . $search->connect_error; $search->close(); } $keyword = trim($_GET['keyword']) ; $query ="SELECT COLUMN_NAME FROM ".DB_NAME.".INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%".$keyword."%'"; $values = $search->query($query); if($values->num_rows != 0) { while($row = $values->fetch_assoc()) { echo $row['COLUMN_NAME']."<br>"; } } else { echo 'No Results for :"'.$_GET['keyword'].'"'; } }