我有一个PHP搜索功能,可以从我的数据库中检索项目并在搜索结果页面上显示它们。当点击搜索结果时,它会转到一个单独的html页面(对于每个搜索项目),其中包含有关该项目的更多详细信息。
我想将每个搜索结果链接到一个PHP页面,该页面从URL获取项目ID,然后从数据库中检索并显示相关数据。
下面是显示搜索结果的页面中的PHP代码,但我不知道在哪里编辑它,将每个项目链接到动态PHP页面,然后从动态PHP页面上的URL检索ID?
<?php
if (!empty($data)){
foreach ($data as $item){
echo '<div class="item">';
if (strlen($item['item_image']) > 10){
if(strlen($item['item_link']) > 10){
echo '<a href="'.$item['item_link'].'">';
}
else {
echo '<div class="fail ">No Results Found;
}
?>
编辑:
我在detail_page.php上使用了以下代码
<?php $db =
mysql_connect("","","") or die("Database Error");
mysql_select_db("items",$db); $id = $_GET['id']; $id = mysql_real_escape_string($id); $query = "SELECT * FROM `items-one` WHERE `id`='" . $id . "'"; $result = mysql_query($query);
但现在需要调用数据库中ID的所有行字段,然后在整个页面的不同位置添加它们?
答案 0 :(得分:1)
通常,这是通过GET在参数中传递id来完成的。因此,列表页面上的链接可能如下所示:
echo '<a href="/path/to/detail_page.php?id=' . $id . '">' . $link_text . '</a>';
此处$id
和$link_text
可能会以循环或其他方式填充。
在/path/to/detail_page.php
页面上,你会得到一些像这样的代码:
// validate that there is an integer-like value passed in `$_GET['id']`
// if so, set value to $id
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
// see results of filtering and behave accordingly
if (is_null($id)) {
// $_GET['id'] was not set
// do something and exit
} else if (false === $id) {
// the value at $_GET['id'] didn't pass validation filter
// do something and exit
}
// $id has a good integer value
// note you would probably need additional validation checks on the id value
// i.e. make sure value is not negative or 0
// you may want to cast $id to int to make these checks
// for example:
$id = int($id);
if ($id < 1) {
// bad $id value
// do something and exit
}
// read data from DB and display it