我正在尝试在我正在开发的网站上创建一个“探索”页面。以下是用于视觉参考的页面和数据库的图像。
数据库:http://gyazo.com/a48eb00458d3a93845bc666af23775c1 网页:http://gyazo.com/69d0889c77d784d12448827b603891be
这是我目前的PHP脚本:
$connect = mysql_connect("localhost","root","root");
if (!$connect) {
die('lel' . mysql_error());
}
$search = $_GET['make'];
mysql_select_db("dapper");
$query = mysql_query("SELECT * FROM posts WHERE make = '$search'");
while ($rows = mysql_fetch_array($query)) {
$id = $rows['id'];
$photographer = $rows['photographer'];
$carowner = $rows['car-owner'];
$make = $rows['make'];
$event = $rows['event'];
$author = $rows['author'];
$date = $rows['date'];
echo "
<article>
<img src='uploads/$id.jpg'>
</article>";
}
fclose($connect);
?>
这是我的搜索HTML标记:
<ul>
<h4>Make</h4>
<a href="explore.php?make=vw"><li>Vw</li></a>
<a href="explore.php?make=audi"><li>Audi</li></a>
</ul>
<ul>
<h4>Event</h4>
<a href="explore.php?event=h2oi"><li>H20i</li></a>
<a href="explore.php?event=titanic dubs"><li>Titanic Dubs</i></li></a>
<a href="explore.php?event=dubshed"><li>Dubshed</li></a>
<a href="explore.php?event=players show"><li>Players Show</i></li></a>
</ul>
从网页图片中可以看出,用户应该能够搜索活动,制作和摄影师。但是我只是设法让脚本成功搜索一件事。我觉得我没有解释这个最好,但我不是试图让用户搜索例如:摄影师和同一搜索中的事件。
提前致谢。
杰米麦卡德尔, PHP Noob答案 0 :(得分:2)
按照OP来解决问题:
$search2 = $_GET['event'];
- WHERE make = '$search' OR event = '$search2'
或将OR
替换为AND
,如果您的行与当前行中的行匹配那些标准。
建议:
您最好使用下拉菜单或单选按钮,然后使用值而不是多个href
。
这样,如果标准随着时间的推移变大,那么您的页面将不会被链接填充。
<强>脚注:强>
mysql_*
函数弃用通知:
http://www.php.net/manual/en/intro.mysql.php
从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqli或PDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。
这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/。
可以在»http://dev.mysql.com/doc/找到MySQL的文档。
修改强>
结果与否:
if($query){
while ($rows = mysql_fetch_array($query)) {
$id = $rows['id'];
$photographer = $rows['photographer'];
$carowner = $rows['car-owner'];
$make = $rows['make'];
$event = $rows['event'];
$author = $rows['author'];
$date = $rows['date'];
echo "
<article>
<img src='uploads/$id.jpg'>
</article>";
}
}
else{
echo "No results.";
}