try this sql query,
select count(location) as locCount from state where location LIKE '%Selangor%' group by location;
in PHP
$sql = "select count(location) as locCount from state where location LIKE '%".$negeri[0]."%' group by location;";
Replace $negeri[0] with your variable name in php
EDIT: TO CREATE SQL QUERY IN LOOP TRY THIS CODE
as per @massquote's code, you can create a sql query in loop like below,
$negeri = array('Selangor','Kedah','Johor','Negeri Sembilan','Perlis','Perak','Sarawak','Sabah','Kuala Lumpur','Kelantan','Terengganu','Melaka','Pahang','Pulau Pinang');
$sql = "SELECT ";
$i=1;
$totCount = count($negeri);
foreach($negeri as $place){
$sql .= "SUM(CASE WHEN location LIKE '%".$place."%' THEN 1 ELSE 0 END) as place".$i;
if($i != $totCount) {
$sql .=", ";
}
$i++;
}
$sql .= " FROM state;";
echo $sql;
echo $sql will print the below sql query, you can use final $sql variable as sql query.
SELECT
SUM(CASE WHEN location LIKE '%Selangor%' THEN 1 ELSE 0 END) as place1,
SUM(CASE WHEN location LIKE '%Kedah%' THEN 1 ELSE 0 END) as place2,
SUM(CASE WHEN location LIKE '%Johor%' THEN 1 ELSE 0 END) as place3,
SUM(CASE WHEN location LIKE '%Negeri Sembilan%' THEN 1 ELSE 0 END) as place4,
SUM(CASE WHEN location LIKE '%Perlis%' THEN 1 ELSE 0 END) as place5,
SUM(CASE WHEN location LIKE '%Perak%' THEN 1 ELSE 0 END) as place6,
SUM(CASE WHEN location LIKE '%Sarawak%' THEN 1 ELSE 0 END) as place7,
SUM(CASE WHEN location LIKE '%Sabah%' THEN 1 ELSE 0 END) as place8,
SUM(CASE WHEN location LIKE '%Kuala Lumpur%' THEN 1 ELSE 0 END) as place9,
SUM(CASE WHEN location LIKE '%Kelantan%' THEN 1 ELSE 0 END) as place10,
SUM(CASE WHEN location LIKE '%Terengganu%' THEN 1 ELSE 0 END) as place11,
SUM(CASE WHEN location LIKE '%Melaka%' THEN 1 ELSE 0 END) as place12,
SUM(CASE WHEN location LIKE '%Pahang%' THEN 1 ELSE 0 END) as place13,
SUM(CASE WHEN location LIKE '%Pulau Pinang%' THEN 1 ELSE 0 END) as place14
FROM state;