2015-09-08 73 views
0

我有一个PHP搜索功能,它从我的数据库中检索项目并将它们显示在搜索结果页面上。点击搜索结果时,它目前会将您带到一个单独的html页面(针对每个搜索项目),其中包含有关该项目的更多详细信息。PHP搜索结果 - 根据URL中的ID检索数据

我想将每个搜索结果链接到一个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

把一些锚文本出现并关闭锚'点击这里' –

+0

,你可以在这里一$ _GET参数工作,改变你的链接这个href =“'detail.php?show ='。$ item ['item_link']。'”然后在详细信息页面上,您可以收听$ _GET更改并更改SQL查询以仅搜索您收到的ID $ _GET参数['show'] –

回答

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 
+0

谢谢我将详细信息页面链接到搜索结果。我将如何请求例如数据库中使用ID的字段item_description? –

+0

@MikeE与数据库交互以生成列出所有各种项目的页面相同的方式 - 您可以针对数据库编写查询,但在这种情况下,您将使用WHERE筛选器查询id =? (其中?是id值)。如果你问如何在PHP中使用数据库,这是一个非常广泛的问题,有数千个代码示例。只要看看不使用不推荐的'mysql_ *'扩展名的例子。 –