2010-12-14 19 views
1

コメントの検索クエリを作成する際に助けが必要です(WordPressサイト用です)。PHP/MySQL - 検索クエリ

ユーザーがログインしている場合は、コメントがこのway-を取得していますされていない場合

 $comments = $wpdb->get_results($wpdb->prepare(" 
     SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d 
     AND (comment_approved = '1' OR (user_id = %d AND comment_approved = '0')) 
     ORDER BY comment_date_gmt", $post->ID, $user_ID)); 

 $comments = $wpdb->get_results($wpdb->prepare(" 
     SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d 
     AND (comment_approved = '1' OR (comment_author = %s 
     AND comment_author_email = %s AND comment_approved = '0')) 
     ORDER BY comment_date_gmt", 
     $post->ID, wp_specialchars_decode($comment_author,ENT_QUOTES), 
     $comment_author_email)); 

ので、私はどのように私は$_GET['search_query']のような特定の検索文字列を含むコメントは、フィルタリングすることができます?

これはWPのdatabase structureです。

http://il2.php.net/manual/en/function.array-search.php

あなたはまた、WPのGoogleの検索クエリwidgeを使用することができます。私が探している検索文字列は、あなたが配列にそれらすべてを入れて、array_search使用することができます

答えて

2

使用LIKE

$comments = $wpdb->get_results($wpdb->prepare(" 
     SELECT * FROM $wpdb->comments WHERE comment_content LIKE ('%$_GET['search_query']%') 
and comment_post_ID = %d 
     AND (comment_approved = '1' OR (user_id = %d AND comment_approved = '0')) 
     ORDER BY comment_date_gmt", $post->ID, $user_ID)); 
+0

ありがとう、私は試してみます。 btwパーセント記号は$ _GETの前後に何をしますか? – Alex

1

comment_contentです。私はそれは素晴らしいことだ 前にそれを使用して:私はみます

http://www.lautr.com/wp-google-search-query-widget-wordpress-plugin

+0

しかし、その検索文字列を持つコメントのみを取得する方が速いのですか?私はデータベース使用量が少ないことを意味しています。 – Alex

+0

wp google検索クエリウィジェットを確認してください。それは完全にワードプレスのために適して – Tom

1

おかげで、。 btwパーセント記号は$ _GETの前後に何をしますか?

検索文字列の前後に任意の数の文字が一致します。

+0

ありがとうございます:別のクエストオン:$ _POST変数からどのようにエスケープする必要がありますか? 'mysql_real_escape_string'は十分ですか? – Alex

+0

私は正直に分かりませんが、私はPDO準備文を使用し、最近はMySQLを使用する必要があります。しかし、問題については[ここ](http://stackoverflow.com/questions/4171115/is-mysql-real-escape-string-enough-to-anti-sql-injection)のディスカッションを読むことができます。 – madkris24