无法使用列数据链接搜索结果

时间:2014-04-12 15:35:52

标签: php mysql search

我无法使用数据库中的数据链接我的搜索结果

<?php
include 'connect.php';
error_reporting(0);
if(isset($_POST['search'])) {
$searchquery = $_POST['search'];
$searchquery = preg_replace("#[^0-9a-z]#i","",$searchquery);


$query = mysql_query("SELECT * FROM tbl_venues WHERE venue_name LIKE '%$searchquery%' OR venue_adress LIKE '%$searchquery%'") or die("Search failed!");
$count = mysql_num_rows($query);
if($count == 0){
    $output = 'No results found!';
    }else{
        while($row = mysql_fetch_array($query))
        {
            $vname = $row['venue_name'];
            $vadress = $row['venue_adress'];
            $id = $row['venue_id'];


            $output .='<div id="searched">'.$vname.'<a href="venue.php?venue=" . $row['venue_id']?>"</a></div>';
        }
    }

}

&GT;

以上是我的代码,我需要将场地的ID作为特定页面示例

venue.php?场地= $ ID

我认为问题在于$ output line

我可以正常执行此操作,但要获得搜索结果,这样做很难。 感谢

1 个答案:

答案 0 :(得分:1)

您误导了'"。当你学习PHP时,这两个引用分隔符是一个臭名昭着的痛苦。我想你也把场地名称字符串放在<a>标签之外。

如果我理解你的话,你在输出中想要这样的东西。

<div id="searched"><a href="venue.php?venue=7">Fillmore West</a></div>

如果我是你,我会用这种结构来做这些事情。

$output .= sprintf('<div id="searched"><a href="venue.php?venue=%d">%s</a></div>',
                   $row['venue_id'],$vname);

使用sprintf()可以使您的字符串替换可见。

当您使用单引号'string'时,php无法识别字符串中的任何内容。这适用于sprintf()的第一个参数,因为它是在内部处理的。