我一直在一个网站上为类上下文工作,我正在做一个搜索字段,该字段将转到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']."%'");