嗨我有一个我正在使用的搜索脚本,基本上是当用户输入一个查询,即伦敦或用户年龄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();
}
?>
答案 0 :(得分:0)
你有正确的想法,但你陷入了货物编程模式。
1)"$db_host"
毫无意义。构建一个新字符串只是为了完整地保存一些其他字符串? <{1}}没有引号(并且对于其他变量而言类似)就是所需要的。
2)$db_host
是一种语言结构。它没有返回值,您无法将其“结果”连接在一起。你还嵌入了字符串中的echo,阻止PHP甚至将它看作输出指令:
echo
就是所需要的。您不必为变量的双引号字符串“中断”。 对于多行字符串回波,您确实应该使用HEREDOC代替,这样可以使代码更清晰。