php - 创建一个搜索表单,我哪里出错了?
问题描述
我是 PHP 新手并创建了一个搜索表单,该表单包含在头文件中并在每个页面中调用。基本上,当用户输入一个单词并单击搜索时,我希望结果显示在新页面中。
这是我的表单 HTML 代码
<form action="search.php" method="GET">
<input type="text" name="query" />
<input type="submit" value="Search" />
</form>
这是我的数据库连接表单中的内容:
<?php
class DBController {
private $host = "localhost";
private $user = "root";
private $password = "mypass123";
private $database = "topgrub";
private $conn;
function __construct() {
$this->conn = $this->connectDB();
}
function connectDB() {
$conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
return $conn;
}
function runQuery($query) {
$result = mysqli_query($this->conn,$query);
while($row=mysqli_fetch_assoc($result)) {
$resultset[] = $row;
}
if(!empty($resultset))
return $resultset;
}
function numRows($query) {
$result = mysqli_query($this->conn,$query);
$rowcount = mysqli_num_rows($result);
return $rowcount;
}
function updateQuery($query) {
$result = mysqli_query($this->conn,$query);
if (!$result) {
die('Invalid query: ' . mysqli_error($this->conn));
} else {
return $result;
}
}
function insertQuery($query) {
$result = mysqli_query($this->conn,$query);
if (!$result) {
die('Invalid query: ' . mysqli_error($this->conn));
} else {
return $result;
}
}
function deleteQuery($query) {
$result = mysqli_query($this->conn,$query);
if (!$result) {
die('Invalid query: ' . mysqli_error($this->conn));
} else {
return $result;
}
}
}
?>
这是我在 search.php 中的 php 代码
<?php
//connect to database, which I have already done
// get value from form
$query = $_GET['query'];
//compare value against sql database
mysql_query("SELECT * FROM products
WHERE (`name` LIKE '%".$query."%') OR (`description` LIKE '%".$query."%')") or die(mysql_error());
//if result found
// loop the below code x amount of times
//else
// return message item not found"
if (!empty($product_array)) {
foreach($product_array as $key=>$value){
//code to be looped
<div>
<img src="<?php echo $product_array[$key]["image"]; ?>" alt="" width=100% height="200" />
<h4 style="font-size: 1.1vw; text-align:center"><?php echo $product_array[$key]["name"]; ?></h4>
<p><?php echo $product_array[$key]["description"]; ?></p>
<p style="text-align:right"><strong><?php echo "£".$product_array[$key]["price"]; ?></strong>
<?php echo " Serves ".$product_array[$key]["serves"]; ?></p>
<form method="post" class="form-item" action="?action=add&code=<?php echo $product_array[$key]["code"]; ?>">
<label>QTY</label>
<input type="text" class="product-quantity" name="quantity" value="1"/>
<button type="submit" value="Add to Cart" id="launch-modal" >Add to Cart</button>
</form>
</div>
}
}
else{ // if there is no matching rows do following
echo "No results";
}
?>
就像我说的那样,我很新,并意识到有一些缺失/未实现但没有运气。
谢谢你的帮助
解决方案
我认为您错过了将查询分配给变量product_array
。
$product_array=mysql_query("SELECT * FROM products
WHERE (
名称LIKE '%".$query."%') OR (
描述` LIKE '%".$query."%')") 或 die(mysql_error());
它将您的查询结果存储在$product_array
推荐阅读
- ckeditor - ckeditor4 CDN 添加额外的插件“模板”
- python - 从以其他元素为条件的元组中删除元素
- node.js - 使用 Promise 改进 mongodb 请求的代码
- listview - 将所选图像添加到水平 listView
- android - 离子 4 和谷歌本机登录的错误代码 10
- java - 从 JWT 令牌中删除角色信息
- java - 如何将解析的 JSON 保存到 mongodb 中?
- google-apps-script - 通过单击电子表格在专用浏览器 (Internet Explorer) 中打开 URL 的 Google 脚本
- python - Pandas:合并具有不同列 dtype 的镶木地板文件 - 用预定义的模式编写镶木地板?
- rust - 引用具有关联类型作为结构字段的通用特征