Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''while''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento Web
    • Desenvolvimento frontend
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets e outros ambientes
    • Desenvolvimento com Wordpress
    • Desenvolvimento de apps
    • Desenvolvimento ágil
    • Desenvolvimento de Games
    • Banco de Dados
    • Design e UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • Boteco iMasters

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 22 registros

  1. Bom dia a todos, tenho em meu banco de dados uma tabela de pedidos, onde nesse pedidos estão salvos as id's dos produtos que foram selecionados pelo usuário, gostaria de saber se tem alguma forma utilizando um while que possa selecionar os produtos mais pedidos dessa tabela, não tenho ideia por onde começar. Consigo listar todos apenas mas não sei como selecionar os que são mais pedidos.
  2. iguulima

    Exibir um Variavel apenas uma vez em um While

    Ola a todos, Estou com uma dúvida e ja tentei de tudo que estão dentro das minhas limitações de conhecimento. Tenho um laço de repetição While sendo executado e quero que uma Variavel seja executada apenas uma vez dentro desse laço. Existe essa possibilidade. Obrigado a todos. Segue o código: <?php $consult = $row['id']; $sql = "SELECT * FROM upload_data WHERE USER_CODE = '$consult' ORDER BY id ASC"; $resultadoimg = mysql_query($sql); $numero_registros = mysql_num_rows($resultadoimg); while($registrosimg = mysql_fetch_array($resultadoimg)) { ?> <li data-target="#carousel-custom" data-slide-to="0" <?php ele precisa ser executado uma unica vez aqui?>><img src="" alt=""></li> <?php } ?>
  3. Olá, pessoal mais uma vez venho pedi a ajuda de vocês estou com um problema ao roda uma query que montei, eu sou iniciante na area e não tenho muito conhecimento então o codigo que fiz foi parte de meu conhecimento básico. bom o que eu quero resolver nessa query é o seguinte, eu quero consultar uma tabela e nela pega todos os registros com a a data vencida e lista ela dentro do while em seguida retornar dentro desse if o valor da coluna de cada uma exemplo de como fiz e ficou com loop infinito. declare @id int declare @getdate datetime select @id = IDCadastrado, @getdate = RegDate from BancoTeste.dbo.MinhaTabela where RegDate < getdate() while @id is not null begin select * from BancoTeste.dbo.MinhaTabela where IDCadastrado = @id end quando eu executo isso ai ele executa infinitamente o valor do primeiro registro repetidamente.
  4. eduardodsilvaq

    Undefined index: name in (no loop)

    Não sei oq tem de errado. O erro: Notice: Undefined index: name in C:\AppServ\www\includes\functions.php on line 105 A linha do erro: <td width="106"><div class="fonte">'. $row["name"] .'</div></td> O codigo: function mini_ranking (){ $PDO = db_connect_gamedata(); $sql = "SELECT name baselevel FROM u_hero WHERE class <> '80' ORDER BY baselevel Desc Limit 6"; $result = $PDO->query($sql); $guild = $result->fetchAll(PDO::FETCH_ASSOC); $i = 1; echo '<table width="153" height="0" border="0">'; foreach($guild as $row) { echo '<tr> <td width="0" height="0" align="center"><div class="fonte">'. $i++ . '</div></td> <td width="106"><div class="fonte">'. $row["name"] .'</div></td> <td width="20"><div class="fonte">'. $row["baselevel"] .'</div></td> <tr>'; } echo '</table>'; }
  5. danilo759

    Como saber o percentual?

    Estou precisando saber o percentual de imagens que está no diretório e estou com dificuldades. Alguém pode me ajudar dar uma luz? $qry_canal = $con->query("SELECT * FROM grade, dados WHERE grade.id = dados.id AND grade.canal IN('HBO','GLO','TNT') GROUP BY dados.titulo"); $counter = 0; while($rows = $qry_canal->fetch(PDO::FETCH_ASSOC)){ $id = $rows['id']; $sigla = $rows['canal']; $sk = substr($rows['sk'], 0, 14); // Busca total de programas por canal /* ---------------------------------------------------------------- */ $qry_b = $con->query("SELECT * FROM grade, dados WHERE grade.id = dados.id AND grade.canal LIKE '".$sigla."' GROUP BY dados.titulo"); $total_programas = $qry_b->rowCount(); if(empty($serieskey)) { $prog_id = "$id"; } else{ $prog_id = "$sk"; } // VERIFICA SE EXISTE IMAGEM /* ---------------------------------------------------------------- */ if(file_exists("/imagens/".$prog_id."_epg.jpg")){ $arr_img[] = "".$counter++.""; } $total_fotos = "".count($arr_img).""; echo "".($total_fotos * 100 ) / $total_programas."% <br />"; }
  6. Hulkstar

    Rank de Vitórias -> PHP

    Possuo um ranking de vitoria/derrota que é trazido através do php com while do banco de dados,tenho dois campos chamados "vencedor" e "perdedor",como posso contar dentro do while os registros iguais que possuem por exemplo "vencedor -> 1" e "perdedor -> 2",caso exista esse registro dessa forma citada 50 vezes,preciso que dentro do while ele me informe que o registro existe 50 vezes.Obrigado pela ajuda.
  7. No meu código $this->details() me retorna todos os detalhes dos produtos, tais como ID, nome do produto, descrição etc. No carrinho de compras quando o usuário finaliza a compra os dados dos itens que ele pediu são inseridos no BD. O problema é que cada produto tem um nome, e quando o usuário finaliza a compra está sendo inserido apenas o Nome do primeiro produto do carrinho repetitivamente. Vejam na foto que o ID do produto é diferente, mas o nome é repetido em todos. Tentei fazer um foreach para tentar resolver o problema, mas continua a mesma coisa. Se alguém puder me ajudar por gentileza, agradeço :) $this->start(); foreach($this->details() as $product_name){ $product = $product_name['product_name']; } // Insert the items if ($pass) { $this->details(); $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`, `product_name`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty, $product); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); }
  8. Codifique um programa em java que: a – permita a entrada via teclado de uma qtde de números tipo inteiro; b – calcule e exiba na tela a soma dos números informados; Obs. A qtde de números deverá ser informado via teclado, antes dos números serem lidos. Eu cheguei a montar a estrutura while, mas não sei como exibir a soma desses números informados. Procurei no google, mas é sempre algo mais simples, como exibir a soma de 2 ou 3 números. Ficaria muito grato a quem pudesse me ajudar Segue o que eu consegui fazer: package exercicio; import java.util.Scanner; public class Exercicio5 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //a – permita a entrada via teclado de uma qtde de números tipo inteiro; System.out.print("Digite a quantidade de números inteiros: "); int quantidade = scan.nextInt(); while(quantidade > 0) { //quantidade de de números informados via teclado antes de serem lidos System.out.print("Digite um número: "); int num = scan.nextInt(); quantidade--; } //b – calcule e exiba na tela a soma dos números informados; System.out.println("A soma dos números digitados é igual a: "); } }
  9. PeeWee

    While duplicando resultado

    Opaa, o problema é o seguinte: preciso fazer uma busca no BD com esse código: $buscar = $pdo->prepare("SELECT * FROM `produtos` WHERE `titulo` LIKE '%$textoBusca%'"); $buscar->execute(); $retorno = array(); $retorno['dados'] = ''; $retorno['qtd'] = $buscar->rowCount(); if($retorno['qtd'] >= 0){ while($conteudo = $buscar->fetchObject()){ $retorno['dados'] .= '<a href="#" id="'.$conteudo->id.':'.$conteudo->valor.'">'.utf8_encode($conteudo->titulo).'</a>'; } } O problema é que os resultados estão vindo duplicados (no BD só há 3 registros) Não tenho idéia do que fazer, se alguem puder ajudar agradeço desde já.
  10. Pitag346

    Laço de repetição com dados

    Olá pessoal, tudo bem ? Estou com um probleminha, espero que me ajudem... Seguinte, tenho uma tabela onde faço a exibição de alguns dados, tais como: NOME, QUANTIDADE, VALOR Eu quero buscar o valor, em outra tabela e exibir dentro desse while. Porem, ele está exibindo em todos os resultados. Seguinte, Cada usuário que efetuar uma vendo do produto tal, é salvo na tabela VENDIDOS, onde o mesmo armazena o "ticket_promote_id". Ao fazer o while das vendas, quero pegar o valor do produto em outra tabela com o "ticket_promote_id" que mencionei acima, porem ao fazer isso, ele me retorna o valor de um produto em todos os resultados do while. Alguém sabe por que ? Segue meu código abaixo: $valueTotali = 0; while($dados = mysqli_fetch_assoc($sql_promoters)){ $user = $dados['id']; $sqlIngress = $conn->query("SELECT * FROM vendidos WHERE ticket_promote_id = '$user' "); $cont = $sqlIngress->num_rows; if($cont > 0){ $dadosIngress = mysqli_fetch_assoc($sqlIngress); $loteId = $dadosIngress['ticket_lote_id']; $sqlLote = $conn->query("SELECT * FROM ingress WHERE lote_id = '$loteId' "); while($data = mysqli_fetch_assoc($sqlLote)){ $valueTotali += $data['lote_preco']; } } Segue a imagem da tabela com o mesmo valor sendo replicado em todos os resultados:
  11. gustavodubarbosa

    If dentro de While PHP

    Estou criando uma página que realize monitoramento de atividades.No meu código PHP defini uma variável que busca a data atual, depois passei o parâmetro de conexão com o banco de dados, depois criei um while para buscar as informações, dentro do while criei um if, a condição if é que se a variável data for igual a data cadastrada na atividade, exiba toda a atividade cadastrada. Mas o problema é que o if não está controlando essa condição, está passando direto e exibindo tudo. <?php $number = ('23'); $data = date("Y-m-d"); echo "$data"; /*Aqui realizo a conexão com o banco de dados, passo os dados para conectar, caso dê algum erro, o sistema me retorna uma mensagem de erro*/ $conect = mysqli_connect('localhost','root','','projeto_pessoal') or die ('Erro na conexão com o banco de dados'); /*Aqui passo o comando para realizar a busca no banco de dados, aplicando o filtro de pesquisa*/ $result_pesquisa = "SELECT * FROM cadastrar_atividade"; /*Neste momento, mando a execução, preciso passar como parametro a variável com a conexão e a variável com o comando, caso dê erro, será exibido uma mensagem*/ $resultado_pesquisa = mysqli_query($conect, $result_pesquisa); /*Aqui é aberto um laço de repetição para fazer uma varredura no banco de dados, em seguida realizo a exibição do que foi encontrado*/ ?> <h1>Resultado da Pesquisa</h1> <?php while($rows_pesquisa = mysqli_fetch_array($resultado_pesquisa)){ if($rows_pesquisa['prazo'] == $data) echo '<p class="title">'.'ID da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['id'].'<br>'.'</p>'; echo '<p class="title">'.'Nome da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['nome_atividade'].'<br>'.'</p>'; echo '<p class="title">'.'Descrição da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['desc_atividade'].'<br>'.'</p>'; echo '<p class="title">'.'Prioridade: '.'</p>'.'<p class="result">'.$rows_pesquisa['prioridade'].'<br>'.'</p>'; echo '<p class="title">'.'Prazo: '.'</p>'.'<p class="result">'.$rows_pesquisa['prazo'].'<br>'.'</p>'; echo 'carregado'; echo '<hr></hr>'; } ?>
  12. Estou com uma dúvida aqui e não estou conseguindo achar uma solução. Criei um sistema de sorteio onde corre e salva no banco uma sequências numeral de forma aleatória. No foreach eu determinei que deverá procurar 5 sequências entre 1 à 10 sem repetir... e caso ele ache no banco, já salvo anteriormente por outro apostador um nº repetido, ele deveria somar + 1 no final do laço e continuar a buscar outro numero até finalizar as 5 sequências. Só que quando ele soma + 1 ele não transfere essa soma para o forech, pois o laço inicia numa linha abaixo. No trecho abaixo eu simulei um número salvo no banco que seria o "00004" e no loop ele deverá pular esse nº. Será que consegui passar a minha dúvida? // GERAR NÚMEROS ALEATÓRIOS function getRandomNumbers($qnt, $min, $max, $repeat = false, $sort = true, $sort_order = 0){ if ((($max - $min) + 1) >= $qnt) { $numbers = array(); while (count($numbers) < $qnt) { $number = mt_rand($min, $max); if ($repeat) { $numbers[] = $number; } elseif (!in_array($number, $numbers)) { $numbers[] = $number; } } if($sort){ switch ($sort_order){ case 0: sort($numbers); break; case 1: rsort($numbers); break; } } return $numbers; } else { return 'A faixa de valores entre $min e $max deve ser igual ou superior à ' . 'quantidade de números requisitados'; }} // Após declará-la: foreach (getRandomNumbers(5, 1, 10, false, false) as $number){ $number = str_pad($number , 6 , '0' , STR_PAD_LEFT); // EXIBIR NA TELA DE TESTE OS NÚMEROS PARA SORTEIO echo " $number<br>"; // $sql = mysqli_query($con, "SELECT * FROM sorteios WHERE num_sorteados='$number'"); // while($array = mysqli_fetch_array($sql)){ // $num_sorteados = $array['num_sorteados']; // } // TESTE $num_sorteados = 000004; // if($num_sorteados == false or $num_sorteados != $number){ $query = "INSERT INTO sorteios (referencia, num_sorteados) VALUES ('$reference','$number')"; mysqli_query($con, $query) or die (" Erro ao inserir dados sorteados"); } else { $qtde_numeros = $qtde_numeros + 1; } }
  13. Rogeriodc9

    While - colocar valor oriundo de tabela

    Bom dia à todos. Estou tendo problemas em colocar um valor, oriundo de uma tabela de dados, no lugar do valor de condição de testes, no comendo While. Abaixo uma parte da expressão, preciso colocar no lugar do valor que condiciona o contador, uma variavel contendo um valor de um registro de uma tabela de dados. $conta=1; while($conta<=$qpa){ A variável $qpa deve conter o valor de uma linha de uma tabela. Mas não consigo fazer com que a variável retorne o valor, ela entra na expressão do comando com o valor zerado. Estou "pegando" da tabela acordos, a quantidade de parcelas ($qpa), que deve fazer um loop, gerando o parcelamento que será incluído em outra tabela. Agradeço se puderem me ajudar.
  14. OLÁ A TODOS, Boa tarde. Preciso de ajuda com o seguinte script. eu tenho uma array que é a seguinte: array (size=7) 0 => string 'gu' (length=2) 1 => string 'tr' (length=2) 2 => string 'fr' (length=2) 3 => string 'ip' (length=2) 4 => string 'al' (length=2) 5 => string 'po' (length=2) 6 => string 'xa' (length=2) Cada string da array de duas letra é a abreviatura de uma cidade; eu quero fazer uma pesquisa na base da dados para cada sigla dessa para ver qual a cidade correspondente. Como vai ser necessariamente um resultado apenas, eu tive que usar o foreach. Tipo foreach($array as $variavel); { $busca = $conn->query("SELECT * FROM tabela WHERE sigla = '$variavel'"); $resultado = $busca->fetch_assoc(); echo ' - '. $resultado['significado_da_sigla']; } } Não está funcionando perfeitamente, mas imprime apenas o último resultado. Eu já tentei uma variável para ir acumulando o resultado, tipo if (empty('$resultado_busca')) { $resultado_busca = $resultado['significado_da_sigla']; } else { $resultado_busca = $resultado_busca . ' - ' . $resultado['significado_da_sigla']; } ou seja, se a variável foi vazia (da primeira vez), então vai criar uma variável com o primeiro resultado, se a variável já existir (das outras vezes), então a variável vai ser igual à variavel anteriormente criado adicionando um traço e o próximo resultado. E depois, em vez de imprimir a variável com fetch_assoc $resultado['significado_da_sigla'] eu imprimiria a variável &resultado_busca, que em cada ciclo iria acumulando os resultados, mas também não está funcionando, essa não imprime nada na tela. Alguém pode dar uma ajuda? OBRIGADO, DESDE JÁ
  15. eu tenho uma array que é a seguinte: array (size=7) 0 => string 'gu' (length=2) 1 => string 'tr' (length=2) 2 => string 'fr' (length=2) 3 => string 'ip' (length=2) 4 => string 'al' (length=2) 5 => string 'po' (length=2) 6 => string 'xa' (length=2) eu quero fazer uma pesquisa na base da dados para cada sigla dessa para ver qual o significado correspondente. Como vai ser necessariamente um resultado apenas, não tem motivo para usar o while, mas fazer via foreach. Tipo foreach($array as $variavel); { $busca = $conn->query("SELECT * FROM tabela WHERE sigla = '$variavel'"); $resultado = $busca->fetch_assoc(); echo ' - '. $resultado['significado_da_sigla']; } } Mas tá imprimindo só o último resultado.
  16. Problema em definir largura e disposição horizontal de tabelas com resultado de while Como iniciante em programação estou tendo problemas para estilizar uma tabela dentro de um script PHP. Possuo o seguinte script: <?php $sql = 'SELECT * FROM psd_produtos'; $stmt = $conn->query($sql); echo '<table>'; while($row = $stmt->fetch(PDO::FETCH_OBJ)){ echo " <td> <tr><h1>$row->prd_nome <br /></h1></tr> <tr><p>$row->prd_detalhe <br /></p></tr> <tr>$row->prd_valor <br /></tr> </td> "; } echo '</table>'; ?> Ele funciona perfeitamente, buscando e produzindo um loop das informações que preciso, porém, gostaria que o resultado me retornasse em tabelas que ficasse dispostas horizontalmente lado a lado, e imaginei colocar uma classe CSS que estabelecesse a largura da tabela em 400px com um float que me permitiria alinhar o resultado em “4 colunas”. Porém, essa classe não funciona dentro do script. Tentei echo '<table class="tabela-produto">'; e não funciona. A mesma classe, que estabelece uma largura para a tabela, aplicada a uma tabela fora do script funciona e isso tirou minha dúvida se este tópico seria sobre CSS/HTML ou PHP. Como posso fazer para obter meu objetivo com este script, alinhando horizontalmente o resultado do while em tabelas dispostas horizontalmente em 4 colunas?
  17. bitencourtgui

    Problema com dados repetidos na tabela PHP

    Estou com uma duvida, ao fazer um select para preencher um campo se ele for igual a real ele deveria preencher ex: o item 1 no valor de 1 real o item 2 no valor de 2 e o item no valor de 3, porem nos três itens ele preenche apenas com o 1º item.o código Controller: <div class="container"> <div class="col-md-12"> <button id="btnProcessar" type="button" class="btn btn-primary" onclick="processEntSai('.$parameters.');"><span>Processar</span></button> </div> <div class="row"> <div class="col-md-12"> <table cellpadding="5" id="tableItemNota" class="display dataTable cell-border compact" cellspacing="0" style="textalign:center; border-bottom:1px solid black;"> <thead> <tr style="border: 1px solid #ccc"> <th></th> <th>Item</th> <th>Imagem</th> <th>Qtd</th> <th>U.Medida</th> <th>Peso</th> <th>C&oacute;digo</th> <th>N&ordm; S&eacute;rie</th> <th>Tamanho</th> <th>Descri&ccedil;&atilde;o</th> <th>Coef.</th> <th>Moeda</th> <th>Valor Unit&aacute;rio</th> <th>Valor Total</th> </tr> </thead> <tbody>'; foreach($itemNFSaida as $item) { if(file_exists('uploads/produtos/'.$item['CODREF'].'.JPG')){ $img_url = BASE_URL.'/uploads/produtos/'.$item['CODREF'].'.JPG'; } else { $img_url = BASE_URL.'/assets/images/imgNotFound.png'; } if($item['QTDDEV'] == $item[$qtdFatRec]){ $tdSelectBox = '<span class="glyphicon glyphicon-ban-circle"></span>'; } else{ $tdSelectBox = '<input type="checkbox" id="'.$item['NUMSEP'].'" name="checkSeq" value="'.$item[$seqCmp].'"/>'; } if($item['USU_MOEVEN'] == 'AU'){ $item['valorEnt'] = $this->step5ModelObj->TotalentSaiComNota(10, $codFil, $numNota); $item['PREUNI'] = $item['valorEnt']['USU_VLRMOE']; } echo '<tr> <td class="order">'.$tdSelectBox.'</td> <td>'.$item[$seqCmp].'</td> <td><img src="'.$img_url.'" id="imgItemPed" data-codpro="'.$item['CODPRO'].'" onclick="itemModalDetalhes(this)"" style="width: 75px; border-radius: 5px; margin: 0px; cursor: pointer;"></td> <td>'.number_format($item['QTD'], 2, '.', '').'</td> <td>'.$item['UNIMED'].'</td> <td>'.number_format($item['PESBRU'], 2, '.', '').'</td> <td>'.$item['CODPRO'].'</td> <td>'.$item['NUMSEP'].'</td> <td>'.$item['CODDER'].'</td> <td>'.$item['CPL'].'</td> <td>'.number_format($item['USU_PREVEN'], 2, '.', '').'</td> <td>'.$item['USU_MOEVEN'].'</td> <td>'.number_format($item['PREUNI'], 2, ',', '').'</td> <td>'.number_format($item['VLRLIQ'], 2, ',', '').'</td> </tr>'; } echo '</tbody> </table> </div> </div> </div>'; O código da Model: public function TotalentSaiComNota($codEmp, $codFil, $numPed){ $sql = "SELECT USU_VLRMOE FROM E140IPV WHERE CODEMP = ? AND CODFIL = ? AND NUMNFV = ?"; $sql = $this->db->prepare($sql); $sql->execute(array($codEmp, $codFil, $numPed)); return $sql->fetch(); } Resumindo preciso que não repita o item do select como está repetindo, preciso que traga os item do select 1. item 1 2. item 2 3. item 3 e não 1. item 1 2. item 1 3. item 1
  18. Olá, sou novo por aqui e estou aprendendo PHP agora. O meu problema é relacionado a um exercício que deve ser simples de resolver para vocês. Vou colocar ele aqui, caso alguém posso me ajudar. Utilizando um while, fazer um programa que lance uma moeda (escolhendo um número aleatório que pode ser 0 ou 1) até tirar 5 vezes cara (o número 1). Ao terminar, imprimir o número de lançamentos da moeda até tirar 5 vezes cara. Desde já agradeço. vlw
  19. Danado_

    while if

    Galera estou com uma dúvida! como eu posso pular linha dentro de um while da seguinte forma: $contato = '5'; id: 1 id: 2 id: 3 <br> id: 4 id: 5 <br> como eu monto essa logica? while(){ if(){} }
  20. daniel8634

    Problema com loop while

    Olá, boa tarde. Eu tenho o código abaixo, porem estou enfrentando um problema com o loop. Basicamente a rotina funciona como uma fila, faz a solicitação e fica aguardando alguém aceitar, enquanto ninguém aceita a solicitação o processo continua, se alguém rejeitar a solicitação ele pula para o próximo registro e continua até alguém aceitar ou o tempo acabar, a questão toda está aparentemente nas condições, por exemplo se alguém rejeitar ele pula para o próximo registro e continua, porem se após alguém rejeitar o próximo que aceitar a rotina parece que fica travada, se eu tirar o break e continue, funciona normalmente, porem ele não faz o processo de continuar a rotina caso alguém recuse a solicitação, abaixo vou postar o código para ver se algum dos colegas consegue me dar uma ajuda. <?php error_reporting(0); include_once '../apporioconfig/start_up.php'; header("Content-Type: application/json"); include 'pn_android.php'; include 'pn_iphone.php'; include 'one-signal.php'; include 'firebase_new.php'; $query = "select * from admin_panel_settings WHERE admin_panel_setting_id=1"; $result = $db->query($query); $admin_settings = $result->row; $normal_ride_radius = $admin_settings['normal_ride_radius']; $admin_panel_request = $admin_settings['admin_panel_request']; $admin_panel_firebase_id = $admin_settings['admin_panel_firebase_id']; $onesignal_rest_key = $admin_settings['onesignal_rest_key']; $onesignal_app_id = $admin_settings['onesignal_app_id']; $onesignal_redirect_url = $admin_settings['onesignal_redirect_url']; $user_id = $_REQUEST['user_id']; $coupon_code = $_REQUEST['coupon_code']; $pickup_lat = $_REQUEST['pickup_lat']; $pickup_long = $_REQUEST['pickup_long']; $pickup_location = $_REQUEST['pickup_location']; $drop_lat = $_REQUEST['drop_lat']; $drop_long = $_REQUEST['drop_long']; $drop_location = $_REQUEST['drop_location']; $car_type_id = $_REQUEST['car_type_id']; $language_code = $_REQUEST['language_code']; $payment_option_id = $_REQUEST['payment_option_id']; $card_id = $_REQUEST['card_id']; $pem_file = $_REQUEST['pem_file']; if ($user_id != "" && $pickup_lat != "" && $pickup_long != "" && $pickup_location != "" && $car_type_id != "" && $payment_option_id != "") { if ($pem_file == "") { $pem_file = 1; } $time = date("H:i:s"); $dt = DateTime::createFromFormat('!d/m/Y', date("d/m/Y")); $data = $dt->format('M j'); $day = date("l"); $date1 = $day . ", " . $data; $date1 = strftime('%d-%m-%Y', strtotime($date1)); //CONTROLD - 13/10/2018 - Alteração para formatar data $query3 = "select * from driver where verification_status=1 AND driver_category IN (1,3) AND car_type_id='$car_type_id' and online_offline = 1 and driver_admin_status=1 and busy=0 and login_logout=1 order by rand()"; $result3 = $db->query($query3); $ex_rows = $result3->num_rows; if ($ex_rows == 0) { $image = ""; $last_time_stamp = date("h:i:s A"); $query1 = "INSERT INTO no_driver_ride_table(user_id,coupon_code, pickup_lat, pickup_long,pickup_location,drop_lat,drop_long,drop_location, ride_date,ride_time,ride_type,ride_status,ride_image,car_type_id,payment_option_id,card_id,last_time_stamp) VALUES ('$user_id','$coupon_code','$pickup_lat','$pickup_long','$pickup_location','$drop_lat','$drop_long','$drop_location', '$date1','$time','1','1','$image','$car_type_id','$payment_option_id','$card_id','$last_time_stamp')"; $db->query($query1); $language = "select * from table_messages where language_code='$language_code' and message_id=34"; $lang_result = $db->query($language); $lang_list = $lang_result->row; $message = $lang_list['message']; $re = array('result' => 0, 'msg' => $message); } else { $list3 = $result3->rows; $c = array(); foreach ($list3 as $login3) { $driver_lat = $login3['current_lat']; $driver_long = $login3['current_long']; $theta = $pickup_long - $driver_long; $dist = sin(deg2rad($pickup_lat)) * sin(deg2rad($driver_lat)) + cos(deg2rad($pickup_lat)) * cos(deg2rad($driver_lat)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $km = $miles * 1.609344; if ($km <= $normal_ride_radius) { $c[] = array("driver_id" => $login3['driver_id'], "distance" => $km, ); } } // inicio rotina grava viagem //print_r($c); if (!empty($c)) { // aqui - CONTROLD - 28/01/2019 - Validação para verificar se já tem viagem em andamento ao solicitar uma nova viagem $query_verifica = "select user_id,viagem from user where user_id='$user_id' and viagem = 'S' order by user_id asc"; $result_verifica = $db->query($query_verifica); $quant_verifica = $result_verifica->num_rows; if ($quant_verifica >= 1) { $re = array('result' => 0, 'msg' => "Você já possui uma viagem em andamento, aguarde o motorista ou cancele a viagem.", 'details' => ""); }else{ $image = ""; $date = date("Y-m-d"); $last_time_stamp = date("h:i:s A"); $query1 = "INSERT INTO ride_table (user_id,coupon_code, pickup_lat,pickup_long,pickup_location,drop_lat,drop_long,drop_location, ride_date,ride_time,ride_type,ride_status,ride_image,car_type_id,payment_option_id,card_id,last_time_stamp,date,pem_file) VALUES ('$user_id','$coupon_code','$pickup_lat','$pickup_long','$pickup_location','$drop_lat','$drop_long','$drop_location', '$date1','$time','1','1','$image','$car_type_id','$payment_option_id','$card_id','$last_time_stamp','$date','$pem_file')"; $db->query($query1); $last_id = $db->getLastId(); $query3 = "select * from ride_table where ride_id='$last_id'"; $result3 = $db->query($query3); $list = $result3->row; $ride_status = $list['ride_status']; $data_viagem = $list['ride_time']; sendMessage($onesignal_app_id, $onesignal_redirect_url, $onesignal_rest_key); $firebase_id = uniqid(); new_ride_sound($admin_panel_firebase_id, $firebase_id); clear($admin_panel_firebase_id, $firebase_id); $nodes = array(); $repetir = 0; foreach ($c as $value) { $distance[] = $value['distance']; } $repetir = 0; $id_motorista = "aaaa"; //array_multisort($distance, SORT_ASC, $c); foreach ($c as $driver) { // echo "aqui envia push ".$driver['driver_id'] ."<br>"; // echo "repetir: ".$repetir; // push // aqui $ride_id = (string)$last_id; $nodes[$driver_id] = array('ride_id' => $ride_id, 'ride_status' => "1"); $query3 = "select * from driver_ride_allocated where driver_id='$driver_id'"; $result3 = $db->query($query3); $driver_allocated = $result3->row; if (empty($driver_allocated)) { $query5 = "INSERT INTO driver_ride_allocated (driver_id,ride_id,ride_mode) VALUES ('$driver_id','$ride_id','1')"; $db->query($query5); } else { $query5 = "UPDATE driver_ride_allocated SET ride_id='$ride_id' WHERE driver_id='$driver_id'"; $db->query($query5); } if ($repetir == 1){ break; } $driver_id = $driver['driver_id']; $query4 = "select * from driver where driver_id='$driver_id'"; $result4 = $db->query($query4); $list4 = $result4->row; $device_id = $list4['device_id']; $language = "select * from table_messages where language_code='$language_code' and message_id=35"; $lang_result = $db->query($language); $lang_list = $lang_result->row; $message = $lang_list['message']; $ride_id = (String)$last_id; $ride_status = '1'; //echo "device id: ".$device_id."<br>"; //echo "driver id: ".$driver_id."<br>"; $codi_motorista = $driver['driver_id']; $query5 = "INSERT INTO ride_allocated (allocated_ride_id, allocated_driver_id,allocated_date) VALUES ('$ride_id','$codi_motorista','$date')"; $db->query($query5); new_ride($nodes,$admin_panel_firebase_id); if ($device_id != "") { // echo "entrou para enviar push"."<br>"; if ($list4['flag'] == 1) { IphonePushNotificationDriver($device_id, $message, $ride_id, $ride_status, $pem_file); }else { //echo "entrou no push android "."<br>"; //echo "device id: ".$device_id. "<br>"; //echo "message id: ".$message. "<br>"; //echo "ride id: ".$ride_id. "<br>"; //echo "ride status id: ".$ride_status. "<br>"; AndroidPushNotificationDriver($device_id, $message, $ride_id, $ride_status); } } //fim push //echo "entrou 0"; //echo "motorista while: ".$driver['driver_id']; //echo "id do motorista: ".$id_motorista ."<br>"; //echo "id do driver: ".$driver['driver_id'] ."<br>"; while ($repetir == 0 && $id_motorista != $driver['driver_id']) { $hora_atual = date('H:i:s'); //echo "hora atual: ".$hora_atual; //echo "<br>"." hora da viagem: ".$data_viagem; // echo "<br>"." diferença: ".calculaTempo($data_viagem,$hora_atual); //echo "<br>"."hora da viagem: ".$data_viagem; // inicio //echo "data 1: ".$data_viagem; //echo "<br>"."data 2 ".$hora_atual; if (calculaTempo($data_viagem,$hora_atual) >= 01){ //echo "parou na hora deu tempo "."<br>"; //$query_tempo = "UPDATE ride_table SET ride_status='40' WHERE user_id = '$user_id' and ride_id='$ride_id'"; // $db->query($query_tempo); //$repetir = 1; break; } /*} else{ echo "entrou na hora continuou"."<br>"; continue; // continue; } */ //fim //echo "chegou rejeita? <br>"; $id_driver = $driver['driver_id']; //echo "id driver: ".$id_driver."<br>"; //echo "id da viagem ".$ride_id ."<br>"; $query_rejeita = "select reject_ride_id,reject_driver_id from ride_reject where reject_ride_id = '$ride_id' and reject_driver_id='$id_driver'"; $result_rejeita = $db->query($query_rejeita); $list_rejeita = $result_rejeita->num_rows; //echo "id do motorista: ".$driver['driver_id'] ."<br>"; //echo "rejeitou? ".$list_rejeita ."<br>"; if ($list_rejeita > 0){//&& $codigo_motorista != $driver['driver_id']) { //echo "entrou 2"; //print_r("print motorista id: ".$driver); //echo "motorista: ".$driver['driver_id']; //echo "passou print <br>"; //// echo "entrou rejeitou"."<br>"; $repetir = 0; $list_rejeita = 1; break; }else{ //echo "entrou else rejeitou"."<br>"; continue; } // aceitou viagem //echo "aceitou: entrando verificação se aceitou"; //echo "Chegou aceitou viagem"."<br>"; $query_consulta = "select ride_status from ride_table where ride_id = '$ride_id' and ride_status = '3' and user_id = '$user_id'"; $result_consulta = $db->query($query_consulta); $lista_consulta = $result_consulta->num_rows; //$repetir = $lista_consulta; //echo "aceitou: " . $lista_consulta; if ($lista_consulta >= 1) { //echo "aceitou viagem"."<br>"; $repetir = 1; break; }else{ //echo "continuou aceitou viagem"."<br>"; continue; } //fim aceitou viagem // auto cancelada //echo "Chegou entrou alto cancelada"."<br>"; $query_autocancel = "select ride_status from ride_table where ride_id = '$ride_id' and (ride_status = '40' or ride_status = '15') and user_id = '$user_id'"; $result_autocancel = $db->query($query_autocancel); $lista_autocancel = $result_autocancel>num_rows; if ($lista_autocancel >= 1) { //echo "entrou alto cancelada"."<br>"; $repetir = 1; break; }else{ //echo "continuou auto cancelada"."<br>"; continue; } /* $query_autocancel_passageiro = "select ride_status from ride_table where ride_id = '$ride_id' and ride_status = '15' and user_id = '$user_id'"; $result_autocancel_passageiro = $db->query($query_autocancel_passageiro); $lista_autocancel_passageiro = $result_autocancel_passageiro>num_rows; if ($lista_autocancel_passageiro >= 1) { // echo "entrou alto cancelada"."<br>"; $repetir = 1; break; }else{ //echo "continuou auto cancelada"."<br>"; continue; } */ // fim auto cancelada // verifica se passou 1 minuto em relação a solicitação da viagem, caso sim sai fora //$hora_atual = date('H:i:s'); //echo "hora atual: ".$hora_atual; //echo "Diferença de hora: ".difDeHoras($hora_atual,$data_viagem); // fim //echo "aqui envia push"; $id_motorista = $driver['driver_id']; } } // 28/01/2019 - CONTROLD - Atualiza campo na tabela de usuarios para controlar solicitação de viagens //$query_update_user = "UPDATE user SET viagem='S' WHERE user_id='$user_id'"; //$db->query($query_update_user); $query5 = "INSERT INTO table_user_rides(booking_id,ride_mode,user_id) VALUES ('$last_id','1','$user_id')"; $db->query($query5); $query3 = "select * from ride_table where ride_id='$last_id'"; $result3 = $db->query($query3); $list = $result3->row; //echo "entrou aqui"; $re = array('result' => 1, 'msg' => "" . $km, 'details' => $list); } } else { $image = ""; $last_time_stamp = date("h:i:s A"); $query1 = "INSERT INTO no_driver_ride_table (user_id,coupon_code, pickup_lat, pickup_long,pickup_location,drop_lat,drop_long,drop_location, ride_date,ride_time,ride_type,ride_status,ride_image,car_type_id,payment_option_id,card_id,last_time_stamp) VALUES ('$user_id','$coupon_code','$pickup_lat','$pickup_long','$pickup_location','$drop_lat','$drop_long','$drop_location', '$date','$time','1','1','$image','$car_type_id','$payment_option_id','$card_id','$last_time_stamp')"; $db->query($query1); $language = "select * from table_messages where language_code='$language_code' and message_id=36"; $lang_result = $db->query($language); $lang_list = $lang_result->row; $message = $lang_list['message']; $re = array('result' => 0, 'msg' => "Sem motorista", ); } } }else{ $re = array('result' => 0, 'msg' => "Faltou informar algum campo"); } echo json_encode($re, JSON_PRETTY_PRINT); /* function difDeHoras($hIni, $hFinal) { // Separa á hora dos minutos $hIni = explode(':', $hIni); $hFinal = explode(':', $hFinal); // Converte a hora e minuto para segundos $hIni = (60 * 60 * $hIni[0]) + (60 * $hIni[1]); $hFinal = (60 * 60 * $hFinal[0]) + (60 * $hFinal[1]); // Verifica se a hora final é maior que a inicial if(!($hIni < $hFinal)) { return false; } // Calcula diferença de horas $difDeHora = $hFinal - $hIni; //Converte os segundos para Hora e Minuto $tempo = $difDeHora / (60 * 60); $tempo = explode('.', $tempo); // Aqui divide o restante da hora, pois se não for inteiro, retornará um decimal, o minuto, será o valor depois do ponto. $hora = $tempo[0]; @$minutos = (float) (0) . '.' . $tempo[1]; // Aqui forçamos a conversão para float, para não ter erro. $minutos = $minutos * 60; // Aqui multiplicamos o valor que sobra que é menor que 1, por 60, assim ele retornará o minuto corretamente, entre 0 á 59 minutos. $minutos = explode('.', $minutos); // Aqui damos explode para retornar somente o valor inteiro do minuto. O que sobra será os segundos $minutos = $minutos[0]; //Aqui faz uma verificação, para retornar corretamente as horas, mas se não quiser, só mandar retornar a variavel hora e minutos if (!(isset($tempo[1]))) { if($hora == 1){ return $hora; } else { return $hora; } } else { if($hora == 1){ if($minutos == 1){ return $hora;//'A diferen&ccedil;a &eacute; de ' . $hora . ' Hora e ' .$minutos . ' Minuto.'; } else { return $hora;//'A diferen&ccedil;a &eacute; de ' . $hora . ' Hora e ' .$minutos . ' Minutos.'; } } else { if($minutos == 1){ return $minutos; } else { return $minutos; } } } } */ function calculaTempo($hora_inicial, $hora_final) { $i = 1; $tempo_total; $tempos = array($hora_final, $hora_inicial); foreach($tempos as $tempo) { $segundos = 0; list($h, $m, $s) = explode(':', $tempo); $segundos += $h * 3600; $segundos += $m * 60; $segundos += $s; $tempo_total[$i] = $segundos; $i++; } $segundos = $tempo_total[1] - $tempo_total[2]; $horas = floor($segundos / 3600); $segundos -= $horas * 3600; $minutos = str_pad((floor($segundos / 60)), 2, '0', STR_PAD_LEFT); $segundos -= $minutos * 60; $segundos = str_pad($segundos, 2, '0', STR_PAD_LEFT); return "$minutos"; } ?>
  21. Caio_Lourençon

    Dúvidas sobre listagem de dados!

    Olá estou desenvolvendo um projeto utilizando a extensão MySQLi, e nisso aproveitando para utilizar algumas funções orientada a objeto! Gostaria de tirar umas dúvidas em relação a listagem de dados, são duas perguntas: 1) Utilizar a função foreach() ao invés de um while() com a função fetch_array() dentro, tem uma listagem mais rápida ou mais lenta? Pois com ambas consigo trazer os dados, No momento estou utilizando a foreach por ser mais rápida de se digitar. 2) Utilizo muitas listagens de tabelas diferentes na mesma página sempre chamando um novo SELECT, seria melhor criar uma função com um SELECT dentro para eu sempre reutiliza-lá ou não iria mudar muita coisa em questão de desempenho? Agradeço qualquer informação.
  22. marcosberaldo

    Criando ranking e mostrando 20 resultados do meio da lista.

    Pessoal, boa noite. Tenho uma tabela no BD que preciso criar um rankin. Fiz uma select que soma duas colunas, de pontuação e outra de desempate, depois ordena as somas por jogador e cria o ranking. Até ai está funcionando blz. Meu problema é o seguinte: Imagine que existam 100 jogadores, eu estou em 70º. Eu quero mostrar o rankin com a minha colocação, mas é inviável criar uma lista com mais de 70 jogadores. O que eu quero é mostrar 10 colocações antes de mim e 10 depois de mim, ou seja, mostrar do 60º ao 80º colocado, mas não consigo fazer isso. No meu código criei até um while que identifica minha colocação (70º), mas não consegui criar um while que exiba somente esses 20 jogadores. Se alguém souber como resolver... fico muito grato. Segue o código: $sql = "SELECT *, SUM(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE rodada = '$rodada' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acerto_Exato DESC"; // Inicia o While de pontuação $result = mysqli_query($conn, $sql); $result2 = mysqli_query($conn, $sql); $i = 1; // Define 1 para o primeiro lugar no ranking // Esse while identifica minha posição no ranking while($r = mysqli_fetch_assoc($result2)) { $ID_Jog = $r['JogadorID']; $Pos = $totalArray[$r['JogadorID']] = $i++; if($LoginID == $ID_Jog) { $Minha_Colocacao = $Pos; } } while($row = mysqli_fetch_assoc($result)) { $ID_Jogador = $row['JogadorID']; $Posicao = $totalArray[$row['JogadorID']] = $i++."º "; $RankJogador = $row['nome']; $Pontos = $row['TotalPontos']; $AcertoExato = $row['Acertos']; // Verifica se o usuário é o jogador logado e marca um style diferente para ele. if($LoginID == $ID_Jogador) { // Se for o mesmo jogador define um fundo colorido para a linha dele na tabela $destaque = "style=\"background-color:#e6a527\""; //$Pos = explode('º',$Posicao); } else { // Caso não seja zera a variável novamente. unset($destaque); } echo " <div class=\"divTableRow\" $destaque> <div class=\"divTableCell\" align=\"center\">$Posicao</div> <div class=\"divTableCell\" >$RankJogador</div> <div class=\"divTableCell\" align=\"center\">$Pontos</div> <div class=\"divTableCell\" align=\"center\">$AcertoExato</div> </div>"; }
×

Informação importante

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