0

嗨,我有一个我正在使用的搜索脚本,基本上当用户输入查询时,即伦敦或 5 岁的用户结果显示了多少个结果。我将其限制为五个的原因是因为空间不足。

我正在尝试制作一个显示在搜索结果底部的按钮,显示查看更多类似结果。这基本上会链接到一个新页面并回显用户最初输入的查询,所以首先他们输入 london 并显示结果为 london 的五个用户,然后如果他们单击链接,则所有结果为 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();
}

?>
4

1 回答 1

0

你的想法是对的,但你陷入了货物狂热的编程模式。

1)"$db_host"毫无意义。构建一个新字符串只是为了完整地保存其他字符串?$db_host不带引号(对于其他变量也是如此)就是所需要的。

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

echo "[...snip...]<a href=\"search.php?to=%$query%\" target=[...snip...]";

这就是我们所需要的。您不必为变量“中断”出双引号字符串。对于多行字符串回显,您确实应该改用HEREDOC,这使得代码更加清晰。

于 2013-02-03T00:31:04.123 回答