Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou puxando dados de números utilizados para envio de SMS da minha base de contatos.
Destes números, quero imprimir no mapa do Brasil o quanto de envios foram feitos por Estado (Por exemplo, SP, MG, MG, etc)
O código já tenho e vou compartilha-lo aqui com vocês!
Meus questionamentos são os seguintes:
Função que separa o DDD do número cheio e imprime a UF do DDD
<?php
function converteDDDUF($numero){
$num = $numero;
if(strlen($numero) == 13){
$ddd = substr($num, 2,-9);
}elseif(strlen($numero) == 12){
$ddd = substr($num, 2,-8);
}
//RELAÇÃO DDD COM UF
$dddLista = array("68","82","96","92","97","71","73","74","75","77","85","88","61","27","28","61","62","64","98","99","65","66","84","31","32","33","34","35","37","38","41","42","43","44","45","46","47","83","91","93","94","81","87","86","89","21","22","24","84","51","53","54","55","69","95","47","48","49","79","11","12","13","14","15","16","17","18","19","63");
$ufLista = array("AC","AL","AP","AM","AM","BA","BA","BA","BA","BA","CE","CE","DF","ES","ES","GO","GO","GO","MA","MA","MT","MT","MS","MG","MG","MG","MG","MG","MG","MG","PR","PR","PR","PR","PR","PR","PR","PB","PA","PA","PA","PE","PE","PI","PI","RJ","RJ","RJ","RN","RS","RS","RS","RS","RO","RR","SC","SC","SC","SE","SP","SP","SP","SP","SP","SP","SP","SP","SP","TO");return $uf; RETORNO A UF ENCONTRADA
}
?>
CONSULTA NA BASE E IMPRESSÃO DE RESULTADOS
<?php
//CONTAGEM INICIAL DOS ESTADOS PARA IMPRIMIR CONTAGEM NO MAPA
$numAC = 1;
$numAL = 1;
$numAP = 1;
$numAM = 1;
$numBA = 1;
$numCE = 1;
$numDF = 1;
$numES = 1;
$numGO = 1;
$numMA = 1;
$numMT = 1;
$numMS = 1;
$numMG = 1;
$numPA = 1;
$numPB = 1;
$numPR = 1;
$numPE = 1;
$numPI = 1;
$numRJ = 1;
$numRN = 1;
$numRS = 1;
$numRO = 1;
$numRR = 1;
$numSC = 1;
$numSP = 1;
$numSE = 1;
$numTO = 1;
//PESQUISO NA TABELA ENVIOS FEITOS DENTRO DO RANGO DE DATAS ESPECIFICADAS
$query = "SELECT * FROM sms_status
WHERE chave_especial_user='$chave_especial' and data_envioORDER BY data_envio ASC";
$sql = mysqli_query($connect_sql,$query);
//LOOP DE ACORDO COM O RESULTADO DA PESQUISA
while($mapa = mysqli_fetch_array($sql)){
$UFDDD = converteDDDUF($mapa['numero']); //IDENTIFICO A UF DO DDD UTILIZADO ATRAVÉS DA FUNÇÃO
switch($UFDDD){ //CRIO VARIAVEIS ESPECIFICAS PARA CADA ESTADO PARA PODER IMPRIMIR NO MAPA
case 'AC':
$contaAC = $numAC++;
$ACNome = "Acre";
$ACSigla = "AC";
break;$contaAL = $numAL++;
$ALNome = "Alagoas";
$ALSigla = "AL";
break;$contaAP = $numAP++;
$APNome = "Amapá";
$APSigla = "AP";
break;$contaAM = $numAM++;
$AMNome = "Amazonas";
$AMSigla = "AM";
break;$contaBA = $numBA++;
$BANome = "Bahia";
$BASigla = "BA";
break;$contaCE = $numCE++;
$CENome = "Ceará";
$CESigla = "CE";
break;$contaDF = $numDF++;
$DFNome = "Distrito Federal";
$DFSigla = "DF";
break;$contaES = $numES++;
$ESNome = "Espírito Santo";
$ESSigla = "ES";
break;$contaGO = $numGO++;
$GONome = "Goiás";
$GOSigla = "GO";
break;$contaMA = $numMA++;
$MANome = "Maranhão";
$MASigla = "MA";
break;$contaMT = $numMT++;
$MTNome = "Mato Grosso";
$MTSigla = "MT";
break;$contaMS = $numMS++;
$MSNome = "Mato Grosso do Sul";
$MSSigla = "MS";
break;$contaMG = $numMG++;
$MGNome = "Minas Gerais";
$MGSigla = "MG";
break;$contaPA = $numPA++;
$PANome = "Pará";
$PASigla = "PA";
break;$contaPB = $numPB++;
$PBNome = "Paraíba";
$PBSigla = "PB";
break;$contaPR = $numPR++;
$PRNome = "Paraná";
$PRSigla = "PR";
break;$contaPE = $numPE++;
$PENome = "Pernambuco";
$PESigla = "PE";
break;$contaPI = $numPI++;
$PINome = "Piauí";
$PISigla = "PI";
break;$contaRJ = $numRJ++;
$RJNome = "Rio de Janeiro";
$RJSigla = "RJ";
break;$contaRN = $numRN++;
$RNNome = "Rio Grande do Norte";
$RNSigla = "RN";
break;$contaRS = $numRS++;
$RSNome = "Rio Grande do Sul";
$RSSigla = "RS";
break;$contaRO = $numRO++;
$RONome = "Rondônia";
$ROSigla = "RO";
break;$contaRR = $numRR++;
$RRNome = "Roraima";
$RRSigla = "RR";
break;$contaSC = $numSC++;
$SCNome = "Santa Catarina";
$SCSigla = "SC";
break;$contaSP = $numSP++;
$SPNome = "São Paulo";
$SPSigla = "SP";
break;$contaSE = $numSE++;
$SENome = "Sergipe";
$SESigla = "SE";
break;$contaTO = $numTO++;
$TONome = "Tocantins";
$TOSigla = "TO";
break;
}
}
?>
PARTE DO JS QUE IMPRIME O DESTAQUE NO MAPA DO BRASIL (GRAFICO DO AMCHARTS)
Para cada estado eu tenho a mesma sequencia de linhas ID, Title, Color
{
\"id\": \"BR-".@$SPSigla."\",
\"title\": \"".@$SPNome." - <b>".@number_format($contaSP,0,'','.')."</b> Envio(s)\",
\"color\": \"rgba(47, 53, 63, 1)\"
},
{
\"id\": \"BR-".@$RJSigla."\",
\"title\": \"".@$RJNome." - <b>".@number_format($contaRJ,0,'','.')."</b> Envio(s)\",
\"color\": \"rgba(47, 53, 63, 1)\"
},
{
\"id\": \"BR-".@$ACSigla."\",
\"title\": \"".@$ACNome." - <b>".@number_format($contaAC,0,'','.')."</b> Envio(s)\",
\"color\": \"rgba(47, 53, 63, 1)\"
},
Imaginem meu servidor fazendo essa pesquisa e impressão de dados numa pesquisa que possa retornar mais de 1k, 10k, 100k ou até mesmo 1kk de resultados.
O mapa fica com este visual:
Será que desta forma que fiz é uma forma "sustentavel" de se fazer?
Detalhe: Não trabalho com OP, apenas "sei" programar desta forma...
Aguardo comentarios
Carregando comentários...