Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于用户输入的数据库搜索_Php - Fatal编程技术网

Php 基于用户输入的数据库搜索

Php 基于用户输入的数据库搜索,php,Php,我是PHP的新手。我正在研究搜索功能,但它不能很好地工作,我找不到原因。问题是,;$query已发送并被良好地接受,但它无法在数据库中找到$query,即使$query已存在。我认为,$sql命令可能在某个地方出错,但无论如何,都找不到它。多谢各位 下面是我的代码:asset_search.php <?php //Search data in database $query = $_GET['query']; $min_length = 3; if(strlen($query) >

我是PHP的新手。我正在研究搜索功能,但它不能很好地工作,我找不到原因。问题是,;$query已发送并被良好地接受,但它无法在数据库中找到$query,即使$query已存在。我认为,$sql命令可能在某个地方出错,但无论如何,都找不到它。多谢各位

下面是我的代码:asset_search.php

<?php
//Search data in database
$query = $_GET['query'];
$min_length = 3;

if(strlen($query) >= $min_length)
{
    //$query = htmlspecialchars($query);
    //$query = mysql_real_escape_string($query);
    $query = strtoupper($query);
    $sql = "SELECT * FROM asset WHERE ('asset_name' LIKE '%".$query."%')";
    $result = mysqli_query($conn, $sql);
    $row_cnt = mysqli_num_rows($result);

    $count = 0;

    if($row_cnt > 0)
    {
        echo "<table style='padding: 5px; font-size: 15px;'>";
        echo "<tr><th style='width: 30px; border: 1px solid black; align:'center''>No</th>";
        echo "<th style='width: 200px; border: 1px solid black; align:'center''>Status</th>";
        echo "<th style='width: 200px; border: 1px solid black; align:'center''>Asset Sub-identifier</th>";
        echo "<th style='width: 200px; border: 1px solid black; align:'center''>Asset Name</th>";
        echo "<th style='width: 200px; border: 1px solid black; align:'center''>Asset Type</th>";
        echo "<th style='width: 200px; border: 1px solid black; align:'center''>Brand</th>";
        echo "<th style='width: 200px; border: 1px solid black; align:'center''>Service Tag/ Product Tag/ Product S/N</th>";
        echo "<th style='width: 200px; border: 1px solid black; align:'center''>CSM Tag</th>";
        echo "<th style='width: 200px; border: 1px solid black; align:'center''>Action</th></tr>";

        while($row = mysqli_fetch_assoc($result))
        {
             echo "<tr><td align='center'>" . ++$count . "</td>";
             echo "<td align='center'>" . $row["asset_status"] . "</td>";
             echo "<td align='center'><a href='asset_viewfull.php?asset_id=" . $row["asset_id"] . "'><ins>" . $row["asset_subidentifier"] . "</a></ins></td>";
             echo "<td align='center'>" . $row["asset_name"] . "</td>";
             echo "<td align='center'>" . $row["asset_type"] . "</td>";
             echo "<td align='center'>" . $row["asset_brand"] . "</td>";
             echo "<td align='center'>" . $row["asset_sertag"] . "</td>";
             echo "<td align='center'>" . $row["asset_csmtag"] . "</td>";

             if($row["asset_status"] == "DISPOSE")
             {
                    echo "<td align='center'><a href='asset_delete.php?asset_id=" . $row["asset_id"] . "'>Delete</a>";
                    echo " ";
                    echo "<a href='asset_print.php?asset_id=" . $row["asset_id"] . "'>Print</a></td></tr>";
             }else
             {
                    echo "<td align='center'><a href='asset_editform.php?asset_id=" . $row["asset_id"] . "'>Edit</a>";
                    echo " ";
                    echo "<a href='asset_delete.php?asset_id=" . $row["asset_id"] . "'>Delete</a>";
                    echo " ";
                    echo "<a href='asset_disposeform.php?asset_id=" . $row["asset_id"] . "'>Dispose</a>";   
                    echo " ";
                    echo "<a href='asset_print.php?asset_id=" . $row["asset_id"] . "'>Print</a></td></tr>"; 
             }
        }

       }else
       {
          echo "<tr> There is no asset in the database </tr>";
       }
       echo "</table>";
}
else
{
    echo "<script languange = 'Javascript'>
            alert('Minimum length is' .$min_length);</script>";
}

//Close connection
mysqli_close($conn);
$count = 0;

将查询更改为以下内容:

从资产中选择*,其中(`asset_name`类似“%”“%$query.”


注意“around asset\u name”而不是“around asset”

您应该在不使用括号的情况下尝试此操作,有时它会导致搜索失败

$sql = "SELECT * FROM asset WHERE `asset_name` LIKE '%{$query}%'";

我就是这样完成这项任务的,从来没有让我失望过

您能否直接在SQL控制台上运行查询并查看结果<代码>从资产中选择*(资产名称,如“%your query string here%”)