Ir para conteúdo
Guilherme Luiz

Loop de dados - Estou usando da melhor forma?

Recommended Posts

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:

- Estou fazendo da melhor forma?

- Será que vou sobrecarregar meu servidor em grandes consultas?

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");
$uf  = str_replace($dddLista,$ufLista,$ddd); //SUBSTITUO O DDD PELA UF

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_envio
BETWEEN '$dataINICIAL 00:00:00' AND '$dataFINAL 23:59:59'
ORDER 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;
case 'AL':
$contaAL = $numAL++;
$ALNome  = "Alagoas";
$ALSigla = "AL";
break;
case 'AP':
$contaAP = $numAP++;
$APNome  = "Amapá";
$APSigla = "AP";
break;
case 'AM':
$contaAM = $numAM++;
$AMNome  = "Amazonas";
$AMSigla = "AM";
break;
case 'BA':
$contaBA = $numBA++;
$BANome  = "Bahia";
$BASigla = "BA";
break;
case 'CE':
$contaCE = $numCE++;
$CENome  = "Ceará";
$CESigla = "CE";
break;
case 'DF':
$contaDF = $numDF++;
$DFNome  = "Distrito Federal";
$DFSigla = "DF";
break;
case 'ES':
$contaES = $numES++;
$ESNome  = "Espírito Santo";
$ESSigla = "ES";
break;
case 'GO':
$contaGO = $numGO++;
$GONome  = "Goiás";
$GOSigla = "GO";
break;
case 'MA':
$contaMA = $numMA++;
$MANome  = "Maranhão";
$MASigla = "MA";
break;
case 'MT':
$contaMT = $numMT++;
$MTNome  = "Mato Grosso";
$MTSigla = "MT";
break;
case 'MS':
$contaMS = $numMS++;
$MSNome  = "Mato Grosso do Sul";
$MSSigla = "MS";
break;
case 'MG':
$contaMG = $numMG++;
$MGNome  = "Minas Gerais";
$MGSigla = "MG";
break;
case 'PA':
$contaPA = $numPA++;
$PANome  = "Pará";
$PASigla = "PA";
break;
case 'PB':
$contaPB = $numPB++;
$PBNome  = "Paraíba";
$PBSigla = "PB";
break;
case 'PR':
$contaPR = $numPR++;
$PRNome  = "Paraná";
$PRSigla = "PR";
break;
case 'PE':
$contaPE = $numPE++;
$PENome  = "Pernambuco";
$PESigla = "PE";
break;
case 'PI':
$contaPI = $numPI++;
$PINome  = "Piauí";
$PISigla = "PI";
break;
case 'RJ':
$contaRJ = $numRJ++;
$RJNome  = "Rio de Janeiro";
$RJSigla = "RJ";
break;
case 'RN':
$contaRN = $numRN++;
$RNNome  = "Rio Grande do Norte";
$RNSigla = "RN";
break;
case 'RS':
$contaRS = $numRS++;
$RSNome  = "Rio Grande do Sul";
$RSSigla = "RS";
break;
case 'RO':
$contaRO = $numRO++;
$RONome  = "Rondônia";
$ROSigla = "RO";
break;
case 'RR':
$contaRR = $numRR++;
$RRNome  = "Roraima";
$RRSigla = "RR";
break;
case 'SC':
$contaSC = $numSC++;
$SCNome  = "Santa Catarina";
$SCSigla = "SC";
break;
case 'SP':
$contaSP = $numSP++;
$SPNome  = "São Paulo";
$SPSigla = "SP";
break;
case 'SE':
$contaSE = $numSE++;
$SENome  = "Sergipe";
$SESigla = "SE";
break;
case 'TO':
$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:
romBiuj.png

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
Na sua consulta SELECT, evite usar o "*" para pegar todos os campos; ao invés disso, informe exatamente quais colunas você quer e que você vai utilizar. Se alguma coluna for adicionada na tabela mais pra frente, sua consulta vai estar trazendo ela mas não vai usar, ou seja, vai gastar processamento atoa. Na verdade isso já está acontecendo, porque você seleciona todas as colunas, mas a única que você utiliza no código é a "número", então já está com processamento desnecessário.


A melhor maneira de saber se vai ficar lento é testando. Crie um banco de dados com bastante informações e veja como sua aplicação vai se comportar e quais ajustes são necessários.


Mas seria mais simples, fácil e rápido usar o banco de dados para trazer a quantidade já separada por estados. Assim:



SELECT
ddd, COUNT(*) as quantidade
FROM(
SELECT
SUBSTRING(numero, 3, 2) as ddd
FROM sms_status
-- adiciona o WHERE aqui
) as dados
GROUP BY ddd


O resultado seria assim (os dados são apenas para exemplo):


consulta-mapa-1.png


E melhor ainda se você criar uma tabela no banco com a lista de estado/sigla/ddd, aí você pode fazer um JOIN e já trazer todas as informações prontas para serem usadas no mapa, sem precisar fazer tratamentos no PHP:



SELECT
e.sigla, e.nome, d.ddd, d.quantidade
FROM(
SELECT
ddd, COUNT(ddd) as quantidade
FROM (
SELECT
SUBSTRING(numero, 3, 2) as ddd
FROM sms_status
-- adiciona o WHERE aqui
) as tbl
GROUP BY ddd
) as d
INNER JOIN estado as e ON e.ddd = d.ddd
ORDER BY sigla


O retorno seria esse (os dados são apenas para exemplo):


consulta-mapa-2.png


Em um teste com 1k de registros na tabela "sms_status", a consulta acima levou em média 0,016 segundos (muito menos que 1 segundo); com 100k levou em média 0,218 segundos (ainda bem menos que 1 segundo); e com 1kk levou em média 2,324 segundos.


Se quiser algo ainda mais rápido, aí você pode criar uma coluna na tabela "sms_status" só para armazenar o ddd do número, aí ao invés de usar o SUBSTRING, você já seleciona ela direto. E também pode analisar e adicionar índice na coluna onde você ver que há algum ganho de performance.


Usando a consulta acima, no PHP você só precisa executar a consulta e retornar os dados para o JS.

  • +1 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por 11closed
      Olá Estou tentando fazer com que o loop, me ordene por ordem de qual 'cliente' comprou mais de determinadas frutas.
       
      Tenho a tabela 'compras' com os campos;
      ID
      ID_CLIENTE = mostra qual cliente fez a compra
      FRUTA = Mostra qual fruta foi comprada
      QTS_FRUTAS = mostra a quantidade de frutas compradas
       
      alguns preenchimentos dos campos da tabela 'compras' para exemplificar;
       
      ID ID_CLIENTE FRUTA QTS_FRUTAS 1 1 Banana 10 2 2 Goiaba 20 3 3 Pera 10 4 2 Goiaba 20 5 1 Banana 30 6 3 Melão 40 7 1 Banana 50 8 3 Banana 10 9 1 Melão 20 10 1 Goiaba 10  
      Como eu falei, eu gostaria que mostrasse por ordem de qual Cliente comprou mais de determinada fruta, nesse caso com a tabela de exemplo acima, como faço para o loop ficar na seguinte ordem
       
      ID_CLIENTE FRUTA QTS_FRUTAS 1 bananas 90 2 Goiabas 40 3 melão 40 1 Melão 20 1 Goiabas 10 3 Bananas 10 3 Pera 10  
      alguém poderia me ajudar, não estou conseguindo fazer esse LOOP rodar da maneira correta, não achei a solução.
    • Por Luis Febro
      Olá, estou tendo dificuldade em fazer a iteração comparando os valores das propriedades do objeto:
       
      let accessories = {bike: ["helmet", 'glasses', "gloves", "smartwatch"], apps: ["Google Maps", "Anki"]};       let compareItems = function(obj, analysedThing) {         let res = "";         Object.entries(obj).map(function(ìtems) {           if (ìtems[1].indexOf(analysedThing) > -1) {              res = ìtems[0];             document.getElementById("quickCode").innerHTML = `it was found ${analysedThing} in the section ${res}`;           } else {             document.getElementById("quickCode").innerHTML = "Nothing was found. Try another item!";           }         });       };       compareItems(accessories, "glasses");  
      Output: Nothing was found. Try another item! // Mas tem sim na primeira propriedade. Se busco algum valor em apps, por outro lado, ele acha para mim. Mas não em bike.
      Alguém pode me orientar para buscar todos os valores e retornar a propriedade correspondente? Grato.
    • Por teteuvec
      Prezados boa tarde,
       
      Estou tentando escrever na tela o resultado de um select na tela utilizando WHILE, porém está entrando em loop infinito e gostaria de ajuda para acertar a sintaxe desta técnica.
       
       
      Código apenas com 1 WHILE
      <?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $query_Recordset2 = "SELECT * FROM {$_SESSION['table_base']} WHERE `link_record` = {$data1['id']} AND `record_caracter_id` = 1 order by {$_SESSION['id_base']} DESC"; $Recordset2 = mysqli_query($connect, $query_Recordset2) or die(mysqli_error($connect)); $row_Recordset2 = mysqli_fetch_assoc($Recordset2); $totalRows_Recordset2 = mysqli_num_rows($Recordset2); while($Recordset2 = mysqli_fetch_assoc($Recordset2)) { echo "Contato: ".$Recordset2["name"]."</br>"; echo "CPF/CNPJ: ".$Recordset2["cpf_cnpj"]."</br>"; echo "e-mail: ".$Recordset2["email"]."</br>"; echo "Celular: ".$Recordset2["cellphone"]."</br>"; echo "Telefone: ".$Recordset2["telephone"]."</br>"; echo "Documento de identificação: ".$Recordset2["name"]."</br>"; echo "</br>"; }?>  
       
      Código inteiro:
      <?php session_start(); $_SESSION['last_page'] = $_SERVER['PHP_SELF']; $_SESSION['del_message'] = 'Deseja excluir o cliente '; $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $_SESSION['id_base'] = 'id'; require_once('connections.php'); $query_Recordset1 = "SELECT * FROM {$_SESSION['table_base']} WHERE record_caracter_id = '0' order by {$_SESSION['id_base']} DESC"; $Recordset1 = mysqli_query($connect, $query_Recordset1) or die(mysql_error()); $row_Recordset1 = mysqli_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysqli_num_rows($Recordset1); ?> <!doctype html> <html lang='pt-br'> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Tupã - Serviços de Engenharia</title> <link href='css/sistema.css' rel='stylesheet' type='text/css' media='all'> <style type="text/css"> #cnpj { display: none; } #contato { display: none; } #endereco { display: none; } </style> </head> <body> <fieldset> <legend>Gerenciamento de Clientes</legend> <table id="tabela"> <thead> <tr> <th>Descrição</th> <th>Contato</th> <th>Projetos</th> <th colspan="3">Ação</th> </tr> <tr> <th></th> <th></th> <th></th> <th colspan="3"><input type="submit" value="Filtrar" /> | <input type="button" onclick="javascript: location.href='#rec_openModal'" value="Adicionar" /></th> </tr> </thead> <?php while ($Recordset1 = $row_Recordset1){?> <tr> <td bgcolor="#F5F5F5"><p> Código: <?php echo $Recordset1['id']; ?> <br /> Cliente: <?php echo $Recordset1['name']; ?> <br /> CPF/CNPJ: <?php echo $Recordset1['cpf_cnpj']; ?> <br /> e-mail: <?php echo $Recordset1['email']; ?> <br /> Celular: <?php echo $Recordset1['cellphone']; ?> <br /> Telefone: <?php echo $Recordset1['telephone']; ?> <br /> Documento de identificação: <?php if(file_exists('imagens/clients/energy_bill/'.$Recordset1['id'].'.jpg')) { echo 'Documento de identificação: <a href=imagens/clients/energy_bill/'.$Recordset1['id'].'.jpg target="_blank"><img src="imagens/view.png" width="24" height="24">'; } else { echo 'Documento de identificação: indisponível'; } ?> </p></td> <td bgcolor="#F5F5F5"><?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $query_Recordset2 = "SELECT * FROM {$_SESSION['table_base']} WHERE `link_record` = {$data1['id']} AND `record_caracter_id` = 1 order by {$_SESSION['id_base']} DESC"; $Recordset2 = mysqli_query($connect, $query_Recordset2) or die(mysqli_error($connect)); $row_Recordset2 = mysqli_fetch_assoc($Recordset2); $totalRows_Recordset2 = mysqli_num_rows($Recordset2); while($Recordset2 = mysqli_fetch_assoc($Recordset2)) { echo "Contato: ".$Recordset2["name"]."</br>"; echo "CPF/CNPJ: ".$Recordset2["cpf_cnpj"]."</br>"; echo "e-mail: ".$Recordset2["email"]."</br>"; echo "Celular: ".$Recordset2["cellphone"]."</br>"; echo "Telefone: ".$Recordset2["telephone"]."</br>"; echo "Documento de identificação: ".$Recordset2["name"]."</br>"; echo "</br>"; }?> </td> <td bgcolor="#F5F5F5"><?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'projects_link_tpm'; $query_Recordset3 = "SELECT * FROM {$_SESSION['table_base']} where people_record_id = {$row_Recordset1['id']} order by {$_SESSION['id_base']} DESC"; $Recordset3 = mysqli_query($connect, $query_Recordset3) or die(mysqli_error($connect)); $row_Recordset3 = mysqli_fetch_assoc($Recordset3); $totalRows_Recordset3 = mysqli_num_rows($Recordset3); while($data3 = mysqli_fetch_assoc($Recordset3)) { echo "Projeto: ".$Recordset3["id"]."</br>"; echo "</br>"; }?> </td> <td width="3%" bgcolor="#F5F5F5"><form action="mysql/update_process.php" method="POST"> <input type="hidden" name="update_process" value="<?php echo $row_Recordset1[$_SESSION['id_base']] ?>"> <input type="image" name="submit" src="imagens/edit.png" width="24" height="24"> </form></td> <td bgcolor="#F5F5F5"><form action="mysql/del_process.php" method="POST"> <input type="hidden" name="delete_process" value="<?php echo $row_Recordset1[$_SESSION['id_base']] ?>"> <input type="hidden" name="delete_register" value="<?php echo $row_Recordset1['name'] ?>"> <input type="image" name="submit" src="imagens/delete.png" width="24" height="24"> </form></td> </tr> <?php }?> </table> </fieldset> <div id="rec_openModal" class="modalDialog"> <div> <a class="close" title="Fechar" href="#close">X</a> <fieldset> <legend>Realizar cadastro</legend> <br> <label>Modalidade:</label> <select name="modality" onChange="mostraDiv(this.value)"> <option value="1">Cliente CPF</option> <option value="2">Cliente CNPJ</option> <option value="3">Contato de cliente</option> <option value="4">Endereço de cliente</option> </select> <br /> <div id="cpf"> <form action="mysql/insert_process.php" method="post" id='1'> <br> <label>Nome: </label> <input name='name' type='text' /><br /> <br> <label>CPF: </label> <input name='cpf_cnpj' type='number' data-mask='000.000.000-00' /><br /> <br> <label>e-mail: </label> <input name='email' type='text' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="(00)0000-0000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' data-mask='(00)00000-0000' autocomplete='off' /><br /> <br> <label>Documento de identificação: </label> <input type='file' name='doc_id'><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="0"><INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="cnpj"> <form action="mysql/insert_process.php" method="post" id='2'> <br> <label>Nome da empresa: </label> <input name='name' type='text' /><br /> <br> <label>CNPJ: </label> <input name='cpf_cnpj' type='text' data-mask="00.000.000/0000-00" /><br /> <br> <label>e-mail: </label> <input name='email' type='email' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="00000-000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' /><br /> <br> <label>Documento de identificação: </label> <input name='doc_id' type='file' /><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="0"><INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="contato"> <form action="mysql/insert_process.php" method="post" id='3'> <br> <label>Nome: </label> <input name='name' type='text' /><br /> <br> <label>cpf: </label> <input name='cpf' type='number' data-mask='000.000.000-00' /><br /> <br> <label>e-mail: </label> <input name='email' type='text' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="(00)0000-0000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' data-mask='(00)00000-0000' autocomplete='off' /><br /> <br> <label>Documento de identificação: </label> <input type='file' name='doc_id'><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="1"><br> <label>Contato do cliente </label> <select name="link_record"> <?php while ($data = mysqli_fetch_array($Recordset1)) { echo("<option value='".$data['id']."'>".$data['name']."</option>"); } ?> </select><br /> <INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="endereco"> <form action="mysql/insert_process.php" method="post" id='4'> <br> <label>CEP: </label> <input name='cep' type='text' /><br /> <br> <label>Logradouro: </label> <input name='address' type='text' data-mask="00000-000" autocomplete="off" /><br /> <br> <label>Número: </label> <input name='number' type='text' /><br /> <br> <label>Bairro: </label> <input name='neighborhood' type='text' /><br /> <br> <label>Cidade/UF: </label> <input name='city' type='text' /><input name='uf' type='text' /><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="4"><INPUT TYPE="hidden" NAME="action" VALUE="1"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> </fieldset> </div> </div> </body> </html> <?php mysqli_free_result($Recordset1); mysqli_free_result($Recordset2); mysqli_free_result($Recordset3); ?>  
    • Por dayenne
      Estou com um problema pra resolver e nao consigo pensar numa solução, imagino que seja algo bobo, mas não consigo resolver.
      Então, gostaria de saber como faço para marcar um checked em diferentes lugares do meu radio buttom dependendo de onde o usuario clicar
       
      por exemplo:
      estou em uma pagina e seleciono o plano MOTO 
       
      como ir para outra pagina com a opção MOTO ja selecionada no radio buttom.
       
      da mesma maneira se eu selecionar CARRO
      como ir para outra pagina com a opcao CARRO ja selecionada no radio buttom.
       
      apenas consegui passar os dados de uma pagina para outra, mas nao consigo alterar o checked do radio buttom.
      $mensagem = ""; switch (@$_GET['Opcao']){ case 1: $mensagem .= ' voce escolheu moto '; break; case 2: $mensagem .= ' voce escolheu carro '; break; case 3: $mensagem .= ' voce escolheu caminhao '; break; } echo $mensagem ?> dei um echo apenas para ver que realmente ta passando de uma pagina pra outra.
      me ajudem ai :)
    • Por son goku
      Boa tarde pessoal.
      Estou com o seguinte problema:
      ao clicar no numero da paginação,ela não exibe os dados,vou postar o código abaixo para voçês,verem.
      Quem poder me ajudar:
      <?php session_start(); if (!isset($_SESSION["id"]) || !isset($_SESSION["nome"])){     echo "Você não fez o login no sistema."; } ?> <html> <head> <title>Tipo de consulta</title> </head> <body> <table border="1"> <tr> <td>Descrição:</td>  <td>Forma de pagamento:</td> <td>Valor da parcela: </td> <td>Quantidade de parcelas:</td> <td>Numero da parcela:</td> <td>Pago:</td> <td>Cartão:</td> <td>Numero do cart&atildeo:</td> <td>Data de vencimento:</td> </tr> <?php include "conecta_banco.php"; $idusu = $_SESSION["id"]; $consulta =  isset( $_POST["tipo_consulta"] ) ? $_POST["tipo_consulta"] : null; switch ($consulta){          case "exibe_tudo":               $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;                  //seleciona todos os itens da tabela         $sent_sql = "SELECT * FROM gastos";         $result = mysql_query($sent_sql);                  //conta o total de itens         $total = mysql_num_rows($result);                  //seta a quantidade de itens por página, neste caso, 2 itens         $registros = 20;                  //calcula o número de páginas arredondando o resultado para cima         $numPaginas = ceil($total/$registros);                  //variavel para calcular o início da visualização com base na página atual         $inicio = ($registros*$pagina)-$registros;                  //seleciona os itens por página         $sent_sql = "SELECT * FROM gastos LIMIT $inicio,$registros";         $result = mysql_query($sent_sql);         $total = mysql_num_rows($result);                                     while($tbl = mysql_fetch_array($result))         {                         $descricao = $tbl["descricao_gasto"];             $formapagamento = $tbl["moeda"];             $valor = $tbl["valor_gasto"];             $quantidade = $tbl["quant_parcela"];             $numerodaparcela = $tbl["num_parcela"];             $tapago = $tbl["pago"];             $cartao = $tbl["cartao"];             $numcartao= $tbl["num_cartao"];             $datavencimento = $tbl["data_venc"];                                                                                                /* Aqui converto a data que vem do mysql no formato y/m/d              * para d/m/y */                          $datavencimentoconv = date("d/m/Y",strtotime($datavencimento));                                         echo "<tr>";             echo "<td>$descricao </td>";             echo "<td>$formapagamento </td>";             echo "<td>R$ $valor </td>";             echo "<td>$quantidade </td>";             echo "<td>$numerodaparcela</td>";             echo "<td>$tapago</td>";             echo "<td>$cartao </td>";             echo "<td>$numcartao </td>";             echo "<td>$datavencimentoconv </td>";             echo "</tr>";                      }                                    $sent_sql2 = "SELECT sum(valor_gasto) FROM gastos WHERE usu_id='$idusu'";         $result2 = mysql_query($sent_sql2);                  while($sum = mysql_fetch_array($result2)){             $soma = $sum['sum(valor_gasto)'];                          echo "<tr>";             echo "<td>Total: </td>";             echo "<td>R$ $soma</td>";             echo "</tr>";                        }                  //exibe a paginação         for($i = 1; $i < $numPaginas + 1; $i++) {             echo "<a href='tipoconsulta.php?pagina=$i'>".$i."</a> ";         }                 break; }   ?> </table> </body> </html> Acredito que seja algo,simpless porém já estou a um bom tempo quebrando a cabeça com isso.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.