将搜索查询结果回显到新页面?

时间:2013-02-03 00:25:36

标签: php mysql

嗨我有一个我正在使用的搜索脚本,基本上是当用户输入一个查询,即伦敦或用户年龄5的结果显示了如何找到很多结果。我把它限制在五的原因是因为空间不足。

我正在尝试制作一个显示在搜索结果底部的按钮,该按钮表示查看更多类似的结果。这基本上会链接到一个新页面并回显出最初由用户键入的查询,因此首先他们键入伦敦并显示五个结果为london的用户,然后如果他们点击链接伦敦的所有结果显示在新页面上。

有谁知道我如何回应查询或做类似的事情,这将给我所需的预期效果。

这是我的代码:

              
<?php
//PHP CODE STARTS HERE

if(isset($_GET['submit'])){

// Change the fields below as per the requirements
$db_host="localhost";
$db_username="root";
$db_password="";
$db_name="";
$db_tb_atr_name="display_name";

//Now we are going to write a script that will do search task
// leave the below fields as it is except while loop, which will display results on screen

mysql_connect("$db_host","$db_username","$db_password");
mysql_select_db("$db_name");

$query=mysql_real_escape_string($_GET['query']);


$query_for_result=mysql_query("SELECT *
                        FROM ptb_stats
                        WHERE display_name like '%".$query."%' OR location LIKE '%".$query."%' OR age LIKE '%".$query."%' OR nationality LIKE '%".$query."%' OR ethnicity LIKE '%".$query."%' OR hobbies LIKE '%".$query."%' OR station LIKE '%".$query."%' LIMIT 5");
echo "<div class=\"search-results\">";
while($data_fetch=mysql_fetch_array($query_for_result))

{

    echo "<div class=\"text\"><a href=\"profile.php?id={$data_fetch['user_id']}\" class=\"search\">";
    echo "<div class=\"spacing\"><img width=35px height= 30px src=\"data/photos/{$data_fetch['user_id']}/_default.jpg\" class=\"boxgridsearch\"/> "; 
     echo substr($data_fetch[$db_tb_atr_name], 0,160);
    echo "</a></div></div>";

}
echo "<div class=\"morebutton-search\"><a href=\"search.php?to=echo '%".$query."%'\" target=\"_blank\" \">+ view more results</a></div>";


mysql_close();
}

?>

1 个答案:

答案 0 :(得分:0)

你有正确的想法,但你陷入了货物编程模式。

1)"$db_host"毫无意义。构建一个新字符串只是为了完整地保存一些其他字符串? <{1}}没有引号(并且对于其他变量而言类似)就是所需要的。

2)$db_host是一种语言结构。它没有返回值,您无法将其“结果”连接在一起。你还嵌入了字符串中的echo,阻止PHP甚至将它看作输出指令:

echo

就是所需要的。您不必为变量的双引号字符串“中断”。 对于多行字符串回波,您确实应该使用HEREDOC代替,这样可以使代码更清晰。