サポート » 使い方全般 » 記事毎にコメントしたユーザーの男女比を集計したい

  • 解決済 sasakure_san

    (@sasakure_san)


    ■やったこと

    http://satohmsys.info/wp_list_comments_custom/

    上記を参考に、コメント投稿欄にラジオボタンで性別欄を追加しました。

    ■やりたいこと

    コメントしたユーザーの男女比を集計し、各記事毎にその集計結果を円グラフで表示したい。

    色々調べてみたのですが、解決策が見つからない状況です。
    お知恵をお借りできませんでしょうか。
    何卒よろしくお願い申し上げます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • モデレーター jim912

    (@jim912)

    集計については、get_comments 関数で全コメントを取得し、ループ処理を行なって、男女のそれぞれの数を集計するか、知識があるなら男女のそれぞれの数をSQLで取得してしまっても良いです。

    円グラフについては、代表的なものとしては、Google Charts ですが、その他、描画できる Javascript のライブラリなどもありますので、試してみてください。

    トピック投稿者 sasakure_san

    (@sasakure_san)

    世話役様
    ご返信ありがとうございます!
    PHPはかなり初心者ですが、いただきました内容を元に進めてみたいと思います。
    結果は改めてご報告させていただきます。

    本当にありがとうございました!

    トピック投稿者 sasakure_san

    (@sasakure_san)

    他の作業に追われ、ご報告が遅くなってしまいました…。
    折角ご返信頂いたにも関わらず申し訳ございません。

    取り急ぎ教えて頂いたget_comments関数を使用し、各項目の数値を取得しました。

    <?php
    $sex_count_men = get_comments (
    	array (
    		'post_id' => $post->ID,
    		'meta_key' => 'sex',
    		'meta_value' => 'men',
    		'count' => true
    	));
    $sex_count_women = get_comments (
    	array (
    		'post_id' => $post->ID,
    		'meta_key' => 'sex',
    		'meta_value' => 'women',
    		'count' => true
    	));
    $sex_count_other = get_comments (
    	array (
    		'post_id' => $post->ID,
    		'meta_key' => 'sex',
    		'meta_value' => 'other',
    		'count' => true
    	));
    $sex_count_noselect = get_comments (
    	array (
    		'post_id' => $post->ID,
    		'meta_key' => 'sex',
    		'meta_value' => '選択してください',
    		'count' => true
    	));
    $sex_count_private = $sex_count_other+$sex_count_noselect;
    ?>

    ただ、これらの数値を使用してグラフを作成するまでの流れが全く理解できておりません。
    Google Chartで実装できそうな気がしているのですが…。

    どなたかお知恵をお借りできませんでしょうか。
    何卒よろしくお願い申し上げます。

    トピック投稿者 sasakure_san

    (@sasakure_san)

    http://yohshiy.blog.fc2.com/blog-entry-195.html

    上記を元に、Google Chartのコードを作成してみました。

    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    	<script type="text/javascript">
    	google.load("visualization", "1", {packages:["corechart"]});
    	google.setOnLoadCallback(drawChartSamplePie);
    	function drawChartSamplePie() {
    		
    		var data = google.visualization.arrayToDataTable([
    			['男女比', '(%)'],
    			['男性', $sex_count_menの値を入れたい],
    			['女性', $sex_count_womenの値を入れたい],
    			['非公開', $sex_count_privateの値を入れたい],
    		]);
    		var options = {
    			title: '【口コミ投稿の男女比】',
    			is3D: true
    		};
    		var chart = new google.visualization.PieChart(document.getElementById('gct_sample_pie'));
    		chart.draw(data, options);
    	}
    </script>
    <div id="gct_sample_pie" style="width: 400px;"></div>

    「男性」「女性」「非公開」それぞれに数値を代入したいのですが
    どのように記述すればよろしいでしょうか?

    初心者でご迷惑をお掛けします…何卒よろしくお願い申し上げます。

    こんにちは

    値の取得と表示が同じphpで、JavaScriptを出力する前に値が取得できている前提ですが、以下のように記述したらうまく行く気がします。

    
    			['男性', <?php echo $sex_count_men;?>],
    			['女性', <?php echo $sex_count_women;?>],
    			['非公開', <?php echo $sex_count_private;?>],
    
    トピック投稿者 sasakure_san

    (@sasakure_san)

    munyagu様

    この度は検証いただき、誠にありがとうございます。
    いただきましたコードにて確認したところ、無事表示することができました!!!
    1か月以上悩んでおりましたので、表示されたときは思わず泣きそうになりました。
    これもひとえにmunyagu様、jim912様のおかげと大変感謝しております。

    初心者に長々とお付き合いいただき本当にありがとうございました。
    重ねて御礼申し上げます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「記事毎にコメントしたユーザーの男女比を集計したい」には新たに返信することはできません。