繁体   English   中英

使用php在mysql中搜索整个数据库

[英]Search entire database in mysql using php

嗨,我正在编写一个简单的脚本,以便根据用户输入从整个数据库中进行搜索。 这是我的代码:

<?php
$search=isset($_POST['search']);
$submit=isset($_POST['submit']);
if($submit){
$connect=new mysqli("localhost","root","");
mysqli_select_db($connect,'go-web');
$query=mysqli_query($connect,"SELECT *  FROM `go-web`.`product` WHERE (CONVERT(`name` USING utf8) LIKE '%$search%' OR CONVERT(`category` USING utf8) LIKE '%$search%' OR CONVERT(`brand` USING utf8) LIKE '%$search%' OR CONVERT(`keyword` USING utf8) LIKE '%$search%')");
while($row=mysqli_fetch_array($query))
{
echo '<tr><td style="height=100px"><center><a href=""><img src="'.$row['image'].'" width="150px" height="150px" /></a><center><figcaption>Price:'.$row['price'].'</figcaption></center><br> <center><figcaption>Stock:'.$row['stock'].'</figcaption></center></center></td></tr>';
}
}
?>

这里的问题是,每当我输入时,我一次又一次地得到相同的结果。 有什么帮助吗? 谢谢你。

问题是您正在设置$search = isset($_POST['search']) ,这将导致布尔值,然后继续在查询中使用它: name LIKE '%$search%'

<?php
$search = $_POST['search'];
$submit = isset($_POST['submit']);

if(isset($search)) {

    $connect = new mysqli("localhost","root","","go-web");

    $search = mysqli_real_escape_string($connect, $search);

    $sql = "SELECT *  FROM `go-web`.`product` WHERE (CONVERT(`name` USING utf8) LIKE '%$search%' OR CONVERT(`category` USING utf8) LIKE '%$search%' OR CONVERT(`brand` USING utf8) LIKE '%$search%' OR CONVERT(`keyword` USING utf8) LIKE '%$search%')";

    $query = mysqli_query($connect,$sql);

    while($row = mysqli_fetch_array($query))
    {
        echo '<tr><td style="height=100px"><center><a href=""><img src="'.$row['image'].'" width="150px" height="150px" /></a><center><figcaption>Price:'.$row['price'].'</figcaption></center><br> <center><figcaption>Stock:'.$row['stock'].'</figcaption></center></center></td></tr>';
    }
}

?>

暂无
暂无

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

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