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

标签 php html mysql

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

<?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']),这将产生一个 bool 值,然后继续在查询中使用它:名称类似于“%$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>';
    }
}

?>

关于php - 使用php在mysql中搜索整个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38348682/

相关文章:

mysql - 如何使用 ruby​​ 版本 1.8.4 gem 安装 mysql?

php - 单击动态创建的复选框时通过 AJAX/PHP 更新 MySQL 中的值?

html - 如何将文本居中放置在响应式圆圈的中间,(文本也是响应式的)?[仅限 css/html]

html - 使用 Bootstrap 打印 HTML 表格背景颜色

html - 我怎样才能把它居中,而不弄乱我的伪元素?

php - 从集合中获取最高值(value)

php - 无法访问 MySQL 数据库

php - 仅在 Google Chrome 和 URL 重写中随机丢失 session 变量

php - 使用 php 进入 mysql 内部的部分条目

javascript - 查询的对象在 SELECT 和 JOIN 后返回 null