在mysql.php上搜索


Search on mysql php

我一直在一个网站上为类上下文工作,我正在做一个搜索字段,该字段将转到mysql数据库表并返回匹配的结果。

我做了这个代码,但它不起作用,错误就像"数组到字符串的转换",我已经搜索了几个小时,却找不到解决方案。这是我的代码:

<?php
if(!empty($_POST) ){
    $searchstring['string'] = $_POST['string'];
    $productManager = new ProductManagement();
    $results = $productManager->searchProduct($searchstring);
    if (!$results) {
        echo "nothing found";
    } else {
        while($row = $results->fetch_array(MYSQLI_ASSOC)) {
            echo '

            <div class="col-sm-4 col-lg-4 col-md-4">
                <div class="thumbnail">
                    <img src="'. $row ['image'] .'" alt="" width="320px" weight="150px">
                    <div class="caption">
                        <h4 class="pull-right">€'. $row ['price'] .'</h4>
                        <h4><a href="#">'. $row ['name'] .'</a>
                        </h4>
                        <p><strong>Size:</strong> '. $row ['size'] .'</p>
                        <p class="pull-right"><a class="btn btn-info" href="view.php?id='. $row ['id_shirt'] .'" role="button">Ver</a></p>
                    </div>
                </div>
            </div>
            ';
        }
    }
}

和:

public function searchProduct($searchstring)
{
    $results = $this->_database->performQuery("SELECT * FROM `shirts` WHERE name LIKE '%".$searchstring."%'");
    return($results);
}

我希望你能帮我谢谢!

只需使用这个:

$searchstring = $_POST['string'];

说明:

$searchstring['string'] = $_POST['string'];

正如我在评论中提到的,您可以通过以下两种方法之一来修复此问题。

要么将$searchstring设为类似的字符串

$searchstring = $_POST['string'];

或者更改sql以使用您选择的数组值:

$results = $this->_database->performQuery("SELECT * FROM shirts WHERE name LIKE '%".$searchstring['string']."%'");