PHP搜索结果 - 根据URL中的ID检索数据

时间:2015-09-08 16:09:58

标签: php

我有一个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的所有行字段,然后在整个页面的不同位置添加它们?

1 个答案:

答案 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