0

こんにちは、私が使用している検索スクリプトがあります。基本的に、ユーザーがクエリを入力すると、つまり london または 5 歳のユーザーの結果が、見つかった結果の数から表示されます。5つに絞ったのはスペースが足りないからです。

検索結果の下部に表示される、より類似した結果を表示するボタンを作成しようとしています。これは基本的に新しいページにリンクし、ユーザーが最初に入力したクエリをエコーアウトするため、最初に london と入力すると、結果 london を持つ 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();
}

?>
4

1 に答える 1

0

あなたは正しい考えを持っていますが、カーゴ・カルト・プログラミング・モードで立ち往生しています.

1)"$db_host"は無意味です。他の文字列全体を保持するためだけに新しい文字列を作成しますか? $db_host引用符なし (および他の変数についても同様) で十分です。

2)echoは言語構造です。戻り値はなく、「結果」を連結することはできません。また、文字列内のエコーに埋め込んで、PHP がそれを出力ディレクティブとして認識しないようにしています。

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

必要なのはそれだけです。変数の二重引用符で囲まれた文字列を「分割」する必要はありません。また、複数行の文字列エコーの場合は、代わりにHEREDOCを使用する必要があります。これにより、コードがはるかに読みやすくなります。

于 2013-02-03T00:31:04.123 に答える