简体   繁体   English

在Mysql php的多行中一次搜索多个单词和单个单词

[英]Search multiple words and single word at a time in a multiple row in Mysql php

I'm trying to use this search for searching more than one words or single word at a time from a database. 我正在尝试使用这种搜索来一次从数据库中搜索多个单词或单个单词。 Now the problem is that my script only running properly but please help me... 现在的问题是我的脚本只能正常运行,但是请帮助我...

 <form name="ds" method="post">
<input type="text" name="name" placeholder="Entername" />&nbsp;&nbsp;
<!--<input type="text" name="search" placeholder="Location" />-->
<select name="location[]" multiple="multiple">

<option value="delhi">Delhi</option>
<option value="Mumbai">Mumbai</option></select>
<input type="submit" name="submit" value="Search" />
</form>
<?
$conn=mysql_connect("localhost","root","");
mysql_select_db("dbrozgarexpress",$conn);
echo $search =$_POST['location'];
$description = "";
$name2=$_POST['name'];
if(isset($name2)&&$name2 != ""){
if($flag){
$cheack.= "AND ";
}
$cheack.="user_first_name ='$name2' ";
$flag =true;
}


if(isset($search)&&$search != ""){
if($flag){
$cheack.= "AND ";
}
foreach($search AS $s)
{
$cheack.="user_current_location_id ='$s' or ";
$flag =true;
}
}

$cheack = substr($cheack, 0, -4);
echo $query = "SELECT * FROM `tb_user` WHERE $cheack ";
?>
error SELECT * FROM `tb_user` WHERE user_first_name ='kum 

I think I have a general idea of what you are after. 我想我对您的追求有一个大致的了解。

PS the query will only show after you submit the form - ie after you click search button 附注:查询仅在您提交表单后显示-即在您单击search按钮之后

Try this: 尝试这个:

<?php

// Handle Post
if (count($_POST))
{
    // Load Params
    $name = isset($_POST['name']) ? $_POST['name'] : '';
    $locations = isset($_POST['location']) ? $_POST['location'] : array();

    // Start Query
    $sql = 'SELECT * FROM `tb_user` WHERE ';

    // Build Query
    $sql_parts = array();
    if (!empty($name)) {
        $sql_parts[] = "`user_first_name` = '$name'";
    }
    if (sizeof($locations)) {
        foreach ($locations as $location) {
            $sql_parts[] = "`user_current_location_id` = '$location'";
        }
    }
    $sql = $sql . implode(' AND ', $sql_parts);

    // Debug
    echo $sql ."<br><br>";
}

?>

<form action="" name="ds" method="post">
<input type="text" name="name" placeholder="Entername" />&nbsp;&nbsp;
<select name="location[]" multiple="multiple">
<option value="delhi">Delhi</option>
<option value="Mumbai">Mumbai</option></select>
<input type="submit" name="submit" value="Search" />
</form>

Here's an example of this working: 这是此工作的示例:


No location selected, name only 未选择位置,仅名称

在此处输入图片说明


name and one location 名称和位置

在此处输入图片说明


name and two location 名称和两个位置

在此处输入图片说明

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

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