简体   繁体   English

PHP中的高级搜索选项

[英]Advanced search options in PHP

I would like to create advanced search option in PHP. 我想在PHP中创建高级搜索选项。 I am retrieving values based on dropdown boxes and radio buttons. 我正在根据下拉框和单选按钮检索值。 I would like to know how to generate query based on these, like how to get the values from listboxes and radio buttons in the first place. 我想知道如何基于这些生成查询,例如首先如何从列表框和单选按钮获取值。 Second thing is I would like to know how to include multiple variable in the query or just leave a query completely blank. 第二件事是我想知道如何在查询中包含多个变量,或者只是将查询完全空白。

For example: I should Filter by component type which contains (R, Mahout, Storm, Python, Splunk) Component domain (telecom, utility, retail, BFSI, travel, Health care) Usage rights (intellectual property, no rights) then miscellaneous values like sort alphabetically, by version etc. 例如:我应该按包含(R,Mahout,Storm,Python,Splunk)的组件类型过滤组件域(电信,公用事业,零售,BFSI,旅行,医疗保健)使用权限(知识产权,无权限)然后是其他值例如按字母顺序,版本等排序。

The problem is multiple values can be selected from component domain and component type. 问题是可以从组件域和组件类型中选择多个值。 Or it can be left empty. 或者可以将其留空。 How do i search based on what is chosen? 如何根据所选内容进行搜索? and if there are multiple values how do i modify my query for the php accordingly? 并且如果有多个值,我如何相应地修改我对php的查询?

I have pasted the code below: Can you guide me like atleast give me an example query on how to generate query for component type and generate multiple values for it 我粘贴了以下代码:您能像至少给我一个指导吗,给我一个示例查询,说明如何生成组件类型的查询并为其生成多个值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
$con = mysql_connect("localhost","root","root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("cerebra", $con);
$sql="select name from details";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
$query=mysql_query($sql,$con);
$names=array();
$index=0;
while($row=mysql_fetch_array($query)){
    $names[$index]=$row[0];
    $index++;

}

?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
  <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <script>
  $(function() {
    var availableTags = <?php echo json_encode($names); ?>;
    $( "#search" ).autocomplete({
      source: availableTags
    });
  });
  </script>
<style type="text/css">

.basictab{
padding: 3px 0;
margin-left: 0;
font: bold 16px Sans-serif;
border-bottom: 1px solid black;
list-style-type: none;
text-align: left; /*set to left, center, or right to align the menu as desired*/
}

.basictab li{
display: inline;
margin: 0;
}
.basictab li a{
    text-decoration: none;
    padding: 3px 7px;
    margin-right: 3px;
    border: 1px solid gray;
    border-bottom: none;
    background-color: #FFFFFF;
    color: #2d2b2b;
}

.basictab li a:visited{
    color: #00F;
}

.basictab li a:hover{
color: #C60;
}

.basictab li a:active{
color: black;
}

.basictab a:selected{ /*selected tab effect*/
position: relative;
top: 1px;
padding-top: 4px;
background-color: #DBFF6C;
color: #06F;
}
fieldset{

  padding: 1em;
  font:90%/1 Verdana, Geneva, sans-serif;
  }

</style>
<script>
function view(){
    document.getElementById("view").style.display="";
}
function auth(){
    var pwd=prompt("Enter the password:","Password")
}
function hide(){
    document.getElementById("view").style.diplay="none";}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="jquery.multiselect.css" />
<link rel="stylesheet" type="text/css" href="assets/style.css" />
<!--<link rel="stylesheet" type="text/css" href="assets/prettify.css" />-->
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<!--<script type="text/javascript" src="assets/prettify.js"></script>-->
<script type="text/javascript" src="src/jquery.multiselect.js"></script>

<script type="text/javascript">
$(function(){
    $("select").multiselect();
});
</script>
</head>

<body onload="hide(); prettyPrint();" id="test" >
<div><h1 style="font-family:Geneva, sans-serif; color:#036">Component Registry</h1></div>
<div id=tab>
<ul class="basictab">
<li><a href="search.php">SEARCH</a></li>
<li><a href="add.php">ADD</a></li>
</ul>
</div>

<div>
<form id="form1" name="form1" method="post" action="">
  <p>
    <label for="search"></label>
    <input type="text" name="search" id="search" />
    <a id=2 href="#" onclick="view()">Search</a>
  </p>
  <fieldset>
  <legend>Filter by:</legend>
  <div id=1>
  <table><tr><td><p>
    <label>Component Type:</label></td>
    <td><select title="Basic example" multiple="multiple" name="example-basic" size="5">
    <option value="option1">Sgoop</option>
    <option value="option2">Monet</option>
    <option value="option3">Hive</option>
    <option value="option4">Mahout</option>
    <option value="option5">R</option>
    <option value="option6">Storm</option>
    <option value="option7">Flume</option>
    <option value="option8">Solr</option>
    <option value="option9">Python</option>
    <option value="option10">Splunk</option>
    <option value="option11">Ruby</option>
    <option value="option12">perl</option>
    </select>
  </p></td></tr>
 <tr><td><p>
    <label>Component Domain:</label></td>

    <td><select title="Basic example" multiple="multiple" name="examplebasic2" size="5">
    <option value="Telecom">Telecom</option>
    <option value="Utility">Utility</option>
    <option value="BFSI">BFSI</option>
    <option value="Travel">Travel</option>
    <option value="Health Care">Health Care</option>
    <option value="Retail">Retail</option>
    <option value="Technology">Technology</option>
    <option value="Government">Government</option>
    <option value="Manufacturing">Manufacturing</option>
    <option value="Education">Education</option>
    </select></td></tr>
  <tr><td><p>Usage Rights:</td>
    <td><input type="radio" name="radio2" id="right" value="right" />
    <label for="right">Intellectual Property</label>
    <input type="radio" name="radio2" id="right2" value="right2" />
    <label for="right2">No rights reserved</label>
  </p></td></tr>
  <tr><td><p>Miscellaneous:</td> 
    <td><input type="radio" name="radio3" id="misc" value="misc" />
    <label for="misc">Sort Alphabetically</label>
    <input type="radio" name="radio3" id="misc2" value="misc" />
    <label for="misc2">Sort by Upload date</label>
    <input type="radio" name="radio3" id="misc3" value="misc3" />
    <label for="misc3">Sort by Versions</label>
  </p></td></tr>
  </table> </div></fieldset>
  <div id="view" style="display:none">
  <table width="457" border="1" align="center">
    <tr>
      <td width="117">Component Name</td>
      <td width="59">Type</td>
      <td width="60">Domain</td>
      <td width="56">Rights</td>
      <td width="72">Download</td>
      <td width="53">Delete</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input type="radio" name="radio" id="12" value="1"  />
      <label for="12"></label></td>
      <td><input type="radio" name="radio" id="122" value="1"  /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input type="radio" name="radio" id="2" value="2 />
      <label for="2"></label></td>
      <td><input type="radio" name="radio" id="123" value="1" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input type="submit" name="1" id="13" value="Download" /></td>
      <td><input type="submit" name="13" id="132" value="Delete" onclick="auth()" /></td>
    </tr>

  </table>
  </div>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
</form>
</body>
</html>

You should put it together in some sort of query. 您应该通过某种查询将其放在一起。 I don't know what you're using, but assuming it's a simple MySQL statement I would do something like this 我不知道您在使用什么,但是假设这是一个简单的MySQL语句,我会做这样的事情

$component_domain = isset($_GET['component_domain']) ? ' AND component_domain = '.$_GET['component_domain'] : '';
$component_type = isset($_GET['component_type']) ? ' AND component_type = '.$_GET['component_type'] : '';
$sort = isset($_GET['sort']) ? ' SORT BY '.$_GET['sort'].' '.$_GET['sort_direction'] : '';
$stmt = 'SELECT * FROM table WHERE something = "somevalue"'.$component_domain.$component_type.$sort;

then run your query. 然后运行查询。 Not my best work, but you can modify it as needed. 不是我的最佳作品,但是您可以根据需要进行修改。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM