1

私は自分のウェブサイトで検索に取り組んでおり、ユーザーが検索した単語 (または単語) を含むデータベースから投稿を選択したいと考えています。以下のコードを使用していますが、動作しますが、LIMIT 10 を使用しているため、選択した 10 の投稿で、たとえば 2 つの投稿のみに検索語が含まれているため、2 つの投稿のみが表示されることがあります。検索された単語を含むデータベース内のより多くの投稿。

$posts = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 10");
while($posts_row = mysql_fetch_assoc($posts )) {
...
$post_body = $posts_row ['post_body'];
if (strstr($post_body, $search)) {
 echo $post_body;
}
...
}

検索語を含むデータベースから投稿のみを選択する方法はありますか? 何かのようなもの

$posts = mysql_query("SELECT * FROM posts WHERE strstr($post_body, $search) ORDER BY id DESC LIMIT 10");

編集:あなたの助けとアドバイスをありがとう.

4

4 に答える 4

3

これを試してください(MySQLでテストされていますが、他の人にはわかりません):

"SELECT * FROM posts WHERE post_body LIKE ( '%".$search."%' ) ORDER BY id DESC LIMIT 10"
于 2013-03-15T18:02:08.607 に答える
1

最初に: mysql_ を使用しないでください。これは推奨されておらず、セキュリティ上の理由から段階的に廃止されています。代わりに mysqli_ を使用してください。

2番目: 「いいね」を使用してそうします:

SELECT * FROM tableName WHERE columnName LIKE '%keyword%';

'keyword searches are fun'また'Find this keyword'とのデータ値の一致を検索します'all keywords are words.'

于 2013-03-15T18:07:39.657 に答える
0

LIKEこの検索を行うために利用できます。

SELECT * FROM posts WHERE post_body LIKE ('%?%') ORDER BY id DESC LIMIT 10;

post_bodyこれは、投稿コンテンツを保存するファイルがあり?、検索文字列に置き換えられます。

于 2013-03-15T18:03:19.870 に答える
0

これをクエリとして使用できます。

SELECT * FROM posts WHERE $post_body like '%$search%' ORDER BY id DESC LIMIT 10

これはおそらく非常に制限的で遅いです。アプリケーションのサイズとデータ量によっては、「全文検索」を使用することをお勧めします。 全文検索

于 2013-03-15T18:04:24.193 に答える