Php 如何创建<;表格>;用于使用assoc数组进行搜索

Php 如何创建<;表格>;用于使用assoc数组进行搜索,php,mysql,arrays,search,Php,Mysql,Arrays,Search,你好,你能帮我写一个我有困难的脚本吗我想从不同的列和价格范围创建一个搜索脚本:因此search.php是: <?php /* connect to the database*/ $db = new mysqli("localhost", "root", "", "movie"); /* check connection */ if ($db->connect_errno) { echo "Connection failed: " . $db->connect_error

你好,你能帮我写一个我有困难的脚本吗我想从不同的列和价格范围创建一个搜索脚本:因此search.php是:

<?php
/* connect to the database*/
$db = new mysqli("localhost", "root", "", "movie");
/* check connection */
if ($db->connect_errno) {
    echo "Connection failed: " . $db->connect_error;
    exit();
}
$query="SELECT * FROM `filmi` 
         WHERE (`nomer` rlike '%$search%' OR 
                `rezume` rlike '%$search%' OR 
                `kategoriq` rlike '%$search%') AND 
                `seriq` BETWEEN '%$pricemin%' AND '$pricemax'  
         ORDER BY seriq ASC";
/* create a prepared statement */
if ($stmt = $db->prepare($query)) {
    /* bind parameters for markers */
    $stmt->bind_param("sssdd", $search, $search, $search, $pricemin, $pricemax);
    /* execute query */
    $stmt->execute();
    /* get result */
    $result = $stmt->get_result();
    if ($result) {
    /* now you can fetch the results into an assoc array */
        while ($row = $result->fetch_assoc()) {
            echo $row['nomer']. ", " .$row['rezume']. ", " .$row['kategoriq']. ", " .$row['seriq']. "<br>";
        }
    }
    /* close statement */
    $stmt->close();
}
/* close db connection */
$db->close();

?> 

您可以在
标记中使用
GET
POST
方法

在PHP脚本中,可以使用
$form\u var\u name=$\u REQUEST['form\u var\u name']
访问表单发送的数据。具体如下

$search = $_REQUEST['search']; 
$pricemin = $_REQUEST['pricemin'];
$pricemax = $_REQUEST['pricemax'];

检查
$search
是否存在。意味着,
$search
中是否有一些值

if(isset($search) && $search!=''){
    case 1
}
else{
    case 2
}
案例1: 如果$search中有值,则将其包含在where子句中。
下面是一个例子来解释我的想法

$query="SELECT * FROM `filmi` 
     WHERE (`nomer` rlike '%$search%' OR 
            `rezume` rlike '%$search%' OR 
            `kategoriq` rlike '%$search%') AND 
            `seriq` BETWEEN '%$pricemin%' AND '$pricemax'  
     ORDER BY seriq ASC";
案例2: 如果$search中没有值,则不将其包含在where子句中。
检查下面的查询

$query="SELECT * FROM `filmi` 
     WHERE `seriq` BETWEEN '%$pricemin%' AND '$pricemax'  
     ORDER BY seriq ASC";

嗯,我试过了,但它仍然没有显示任何结果:(我这样做:
搜索:

并放入$form\u var\u name=$\u请求['form\u var\u name']在$query之前,但我仍然想知道将其放入查询-->“%$search%”的这种方式是否正确,这是它的工作,但现在又有一个问题;\n我需要为$search和$pricemax/min输入值,否则它不会显示任何结果,我需要填充它们:(它只能与$search一起使用,还是只能与$pricemax$pricemin一起使用?嘿,你想在表单的文本框中填充$\ u请求值吗?我想填充它,但现在,当我没有为$search放置任何文本时,只放置$pricemin/$pricemax,它不会显示任何结果:(你能帮我吗?我很想帮你。但是,我不能理解你的问题。你能详细说明一下吗。我的问题是,当我按关键字和价格搜索时,显示结果,但当只按价格搜索而没有关键字时,我不会得到任何结果。当我没有为$search添加任何关键字时,我该怎么做才能显示所有内容呢?)是的,我得出了这个结论,但是你能帮我检查代码吗?我已经更新了答案。但是,奇怪的是,在你写了问题后,你要求我帮你检查代码。不管怎样,现在检查答案。