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'; } }