【发布时间】:2015-08-07 10:41:37
【问题描述】:
我需要帮助!对于我的生活,我无法弄清楚我做错了什么......我正在尝试构建一个简单的搜索脚本,它从 mysql 数据库返回一些结果,并且我希望能够从这些结果中单击每个单独的并将其传递到一个新页面,比如说 results.php,其中加载了该结果的详细信息,类似于我想的电子商务网站,显示产品的结果,单击一个,该产品并且其附加详细信息将加载到新页面中。我知道我需要将 id 传递到 url,但我一直遇到的问题是它只是将搜索结果中的最后一个 id 传递到 url ......但是在搜索结果中收集了所有正确的 id ...... ?
我对 php pdo 等非常陌生。我试图在网上找到一个解决方案,花了几天时间寻找,但我要么得到相同的结果,要么得到错误,这表明我没有做对.. . 无论如何,这是我目前所拥有的:
<?php
require('inc/connect/config.php');
$output = "";
if(!isset($_POST['search'])) {
$output = "";
}
if(isset($_POST['search'])) {
$search_query = $_POST['search'];
$search_query = preg_replace("#[^0-9a-z]#i", "", $search_query);
try {
$query = $db->prepare('SELECT * FROM clients WHERE name LIKE "%' . $search_query . '%" OR town LIKE "%' . $search_query . '%"');
$query->execute();
while($r = $query->fetch(PDO::FETCH_ASSOC)) {
$bname = $r['name'];
$btown = $r['town'];
$id = $r['id'];
$output .= $bname . '<br>' . $btown . '<br>' . $id . '<br><br>';
}
if($query->rowCount() < 1) {
$output = "no results found";
}
} catch (PDOException $e) {
echo "failed search";
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>search</title>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div style="padding: 20%; text-align: center;">
<h3>search</h3>
<p>or search by <a href="categories.php">category</a></p><br>
<form method="post" action="search-test.php">
<label><3 </label><input type="text" name="search" id="search" placeholder="search by brand or town..." style="width: 40%;"><br><br>
<input type="submit" value="search">
</form>
<br>
<a href="results.php?id=<?php echo $id; ?>"><?php echo $output; ?></a>
</div>
</body>
</html>
执行搜索时,返回的结果如下:
业务1
小镇
1
商业2
小镇
2
商业3
小镇
3
但是对于到 results.php 页面的 url 链接,它为每个结果分配 id 为 3...它只会将结果集中的最后一个 id 传递给 url...我做错了什么?请帮忙!!
提前致谢
【问题讨论】: