2

Wordpressのショートコードを作成しようとしています。DISTINCT「回答」から表示したいのですが、「回答」COUNTからの合計です。

foreach私のコードで見つかった場合、関数を使用して値を返すため、カウントをエコーする方法がわかりません。

現在、私は使用してcount($data->answer);います。

表 : wp_events_answer

╔════╦══════════════╦════════════╗
║ id ║  answer      ║question_id ║
╠════╬══════════════╬════════════╣
║  1 ║ Maybank      ║   12       ║
║  2 ║ Maybank      ║   12       ║
║  3 ║ Maybank      ║   12       ║
║  4 ║ CIMB         ║   12       ║
╚════╩══════════════╩════════════╝

私の望む結果は

╔════╦══════════════╦════════════╗
║ No ║  Bank        ║ Total      ║
╠════╬══════════════╬════════════╣
║  1 ║ Maybank      ║   2        ║
║  2 ║ CIMB         ║   1        ║
╚════╩══════════════╩════════════╝

私の現在の結果

╔════╦══════════════╦════════════╗
║ No ║  Bank        ║ Total      ║
╠════╬══════════════╬════════════╣
║  1 ║ Maybank      ║   1        ║
║  2 ║ Maybank      ║   1        ║
║  3 ║ Maybank      ║   1        ║
║  4 ║ CIMB         ║   1        ║
╚════╩══════════════╩════════════╝

これが私のコードです:

    $sql= "
    SELECT *, count(*)
     FROM wp_events_answer
            INNER JOIN wp_events_attendee ON  wp_events_attendee.registration_id= wp_events_answer.registration_id
 WHERE question_id=12 AND event_id='$eventid' GROUP by answer
         ";

    $datas= $wpdb->get_results($sql);
    $num_rows = $wpdb->num_rows;
    if ($num_rows > 0) 
    {
        $result .= '<table id="attendeeList"> 
<thead>
<tr>
 <th width="10%" scope="col">No.</th>
  <th width="70%" scope="col">Group Name</th>
 <th width="20%" scope="col">Total</th>
</tr></thead>'; 
$number = 1;

                    foreach ($datas as $data) { 
                    $result .= '<tbody>';                  
                    $result .= '<tr>';
                    $result .= '<td>';
                    $result .= $number++;
                    $result .= '</td>';
                    $result .= '<td>';
                    $result .= $data->answer; 
                    $result .= '</td>'; 


                    $result .= '<td>';
                    $result .= count($data->answer); //i have no idea how to print total this 
                    $result .= '</td>';

                    $result  .= '</tr>';
                    }
                    $result .= '</table>';



        return $result;

     }
        else 
        { return 'There is no group'; } } 
4

1 に答える 1

1

SQL:

SELECT answer, count(answer) as total
  FROM wp_events_answer
       INNER JOIN wp_events_attendee 
            ON  wp_events_attendee.registration_id= wp_events_answer.registration_id
 WHERE question_id=12 
       AND event_id='$eventid' 
GROUP BY 
       answer

PHP:

....
$result .= $data->answer; 
$result .= '</td>'; 
$result .= '<td>';
$result .= $data->total;
$result .= '</td>';
于 2014-03-20T08:35:00.623 に答える