Search the Community
Showing results for tags 'foreach'.
Found 17 results
-
Boa Noite, alguem poderia me ajudar em uma situação, estou tetnando gravar os dados da tela abaixo, porem nao estou conseguindo montar o jeito certo pra ele gravar todos os dados de uma vez
-
Tenho uma tabela com a coluna média (valor decimal) . cod | media | cod_sala 1 1,98 5 2 2,34 2 3 1,32 5 4 2,51 3 5 1,65 1 6 2,78 5 7 4,95 4 8 0,75 4 9 1,23 1 10 1,63 2 11 1,55 3 Preciso no select MYSQL ou dentro do foreach multiplicar os valores do campo média, de acordo com o fitro por cod_sala Exemplo pelo cod_sala: 5 Sendo o resultdo final: 1,98 * 1,32 * 2,78 = 7,26 Desde já agradeço!
-
SELECT com resultado de dois valores distintos a serem comparados entre si
Ruyter posted a topic in MySQL
Estou com problema para resolver uma solução que estou necessitando. Toda ajuda será bem-vinda! Tenho uma tabela onde há vários registros com um mesmo IDENTIFICADOR e vários INDENTIFICADORES diferentes em uma mesma coluna. Como percorrer os registros de uma tabela, com base nos IDENTIFICADORES? Preciso também analisar um período por data (>= e <=) e ABSTRAIR deste período o valor MIN e MAX de uma outra coluna Esta consulta precisa ser realizada em cada IDENTIFICADOR DISTINTO? Já utilizei o BETWEEN, mas ao usar o código com o foreach() no PHP ele lê apenas um registro. O código que estou trabalhando é este: SELECT conf_hidro_inatividade, cons_reg_ident_iot, cons_data, MIN(cons_leitura_atual), MAX(cons_leitura_atual), hidro_valvula, hidro_cliente FROM tab_conf_hidro, tab_consumo INNER JOIN tab_hidrometros ON cons_reg_ident_iot = hidro_ident_iot WHERE cons_reg_ident_iot = '20220701001' and conf_hidro_inatividade = 'sim' and hidro_valvula = 'aberta' and cons_data BETWEEN '2022-10-10' and '2022-10-13'; Com: SELECT conf_hidro_inatividade, cons_reg_ident_iot, cons_data, cons_leitura_atual, hidro_valvula, hidro_cliente /*(sem o MIN e MAX na mesma coluna)*/ WHERE cons_reg_ident_iot != ' ' and conf_hidro_inatividade = 'sim' and hidro_valvula = 'aberta'; usando dentro do foreach(), percorre todos os registros. -
Listo um array pelo foreach e preciso pegar os valores fora do foreach. Abaixo tenho o exemplo do foreach com os valores <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;
-
Meus amigos, preciso de um help seguinte tenho um credito quero lançar em varias faturas eum foreach até o valor do credito tipo exemplo a baixo: $credito = 100; foreach($shows as $rows){ fatura 1 Valor 20,00 -100 marca como pago fatura 2 Valor 20,00 -80 marca como pago fatura 3 Valor 20,00 -60 marca como pago fatura 4 Valor 20,00 -40 marca como pago fatura 5 Valor 30,00 -20 aqui deixa como não pago }
-
Olá a todos! Tenho uma api Sala de Aula e dentro dela o id de cada aluno. Em outra api, API ALUNO, tenho os dados de cada aluno: nome, foto, endereço. Estou fazendo o foreach da api Sala de Aula e preciso também retornar os dados de cada aluno. Segue o código que não estou conseguindo desenvolver $sala = file_get_contents("https://api/sala?id=987"); $sala = json_decode($sala, true); $sala = $sala['data']; foreach ($sala as $resulsala){ $codigoaluno = $resulsala['idaluno']; $alunos = file_get_contents("https://api/alunos?id=$codigoaluno"); $alunos = json_decode($alunos, true); $alunos = $alunos['data']; foreach ($alunos as $resulalunos){ echo $resulalunos['nome']; echo $resulalunos['foto']; echo $resulalunos['rua']; } }
-
Bom dia Tenho uma variável que traz vários dados de ID_LANÇAMENTO var_dump($meus_ids); array 0 => string '829' (length=3) 1 => string '830' (length=3) 2 => string '828' (length=3) Preciso fazer uma soma das quantidades constantes nestes 3 lançamentos e trazer em variável, porém variável está trazendo cada quantidade em separado, ao invés da soma. foreach($meus_ids as $item){ $Sql_lim = "SELECT SUM(CASE WHEN quantidade >= 11 then 10 else quantidade end) as quantidades_limite FROM minha_tabela WHERE id_lancamento = $item"; $Resultado_lim = executa($Sql_lim); $total_registros_lim = @pg_num_rows($Resultado_lim); while ($linha_lim = @pg_fetch_assoc($Resultado_lim)){ $quantidade_limite_consulta = $linha_lim["quantidades_limite"]; } // Fecha "while" } // Fecha foreach Utilizo BD Postgresql. O total de linhas retornadas é 1, o que em tese está correto. O problema é que ao invés de trazer a soma das quantidades, a variável está trazendo cada quantidade individualizada por lançamento. Onde posso estar errando?
-
Prezados, bom dia. "Warning: Invalid argument supplied for foreach() in.... line 98" Sou novo na área e estou aprendendo, hoje me deparei com o erro supracitado, onde tenho uma query que atualiza os dados no meu banco mysql.. $sql = "update TESTE_DISPENSACAO set DIAS_COBERTURA = '".$diascobertura."', DATA_DISPENSACAO = '".$datadispensacao."', PESO = '".$peso."', ID_TESTE = '".$idTESTE."', OBS = '".$obs."' where ID_TRATAMENTO = '".$idtratamento."'"; Porém ao atualizar o peso, ele apaga o id_teste ou se atualizar o id_teste ele apaga o peso. Segue abaixo a linha de onde a mensagem diz está o erro... $sqlTESTE = "select A.ID_TESTE, A.TESTE, B.ID_TRATAMENTO from TUBERCULOSE_TESTES A LEFT JOIN TESTE_DISPENSACAO B ON B.ID_TESTE = A.ID_TESTE WHERE B.ID_TRATAMENTO =".$idtratamento; $resultTESTE = mysqli_query($con, $sqlTESTE); $rowTESTE = mysqli_fetch_array($resultTESTE); foreach($rowTESTE as $key => $values){ $row[$key]= utf8_encode($values); } Alguém poderia me explicar o porque do erro e como conserta-lo? Desconfio que ambos estão utilizando a mesma busca só sendo possível um resultado por vez, mas como estou aprendendo gostaria de confirmar e saber como consertar nesses casos. Agradeço desde já. Abs.
-
Faço uma consulta no banco para buscar uma lista de horários, depois preciso comparar esse resultado com um array só de horários que eu possuo. Utilizei o código abaixo pra isso: //dados do array $h_indisponiveis separados por _ (ilustrativo) 13:20:00_13:40:00_14:00:00_14:20:00_18:40:00_19:00:00_21:20:00 $sql = "MINHA CONSULTA"; $sql=$pdo->query($sql); if ($sql->rowCount() > 0) { $result = array('error'=>false, 'data' => array()); foreach ($sql as $row) { $horario['id'] = $row['id']; $horario['hora'] = $row['hora']; $horario['tempo'] = $row['tempo']; for($i=0; $i<$sizeArray; $i++){ if ($h_indisponiveis[$i] == $row['hora']){ $horario['disponivel'] = 'n'; } else { $horario['disponivel'] = 's'; } } array_push($result['data'], $horario); } echo json_encode($result); } O problema é que ele não está retornando todas as correspondências entre o objeto da consulta e o array, apenas a última. Ao invés de marcar 6 resultados como "disponivel = n", ele só marca um. Como posso corrigir
-
Como usar o foreach para pegar pegar todos os "produtos" de um grupo na coluna?
Carlos Antoliv posted a topic in PHP
Então, eh algo até simples, problema de lógica e tudo. Eu tinha feito, mas o codigo sumiu do nada e nao lembro mais da lógica que eu empregara. O enredo éh assim tabela_grupo_produtos e tabela tabela_produtos Na tabela_grupo_produtos tem: - informatica; - eletrodomestico; - brinquedos; na tabela_produtos tem os podutos que são ligados a tabela de grupo de grupo de produtos: - informatica->notebook - informatica->computador - informatica->roteador - eletrodomestico->geladeira - eletrodomestico->microondas - eletrodomestico->fogao - brinquedos->lego - brinquedos->boneca - brinquedos->carrinhos O que estou tentando fazer é o seguinte: - informatica->notebook ->computador ->roteador - eletrodomestico->geladeira ->microondas ->fogao - brinquedos- >lego -> boneca ->carrinhos Ou seja, mostra na tela pelo "GRUPO" de produtos. fiz um select no banco.... e tambem um foreach, mas tem algo que ta errado. Cheguei até executar dois selects distintos: EXEMPLO: <!--#################### CÓDIGO SESSÃO ################################ --> <?php session_start(); echo "Usuario: ". $_SESSION['usuarioNome']; echo "<br>"; echo "Codigo: ". $idSessao = $_SESSION['usuarioId']; ?> <br> <a href="sair.php">Sair</a> <!-- #####################FIM CODIGO SESSÃO ############################### --> <?php $servername = "localhost"; $username = "root"; $password = ""; $database = ""; try { $conexao2 = new PDO('mysql:host=localhost;dbname=banco', $username, $password); $conexao2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } $sql2 = "SELECT pdos.fk_usuarios, pdos.nome_prod, pdo.nome_produto, nome_grupo_prod, pdos.foto, pdos.desc_prod, pdos.peso_liq_prod, pdos.qtd_prod, pdos.id_prod, pdos.un_medida FROM tb_produtos AS pdos JOIN tb_produto AS pdo ON pdos.nome_prod = pdo.id_produto JOIN tb_grupo_prod AS gpdo ON gpdo.id_grupo_prod = pdos.fk_tb_grupo_prod INNER JOIN usuarios As usu ON pdos.fk_usuarios = usu.id "; $stm2 = $conexao2->prepare($sql2); $stm2->execute(); $kit3 = $stm2->fetchAll(PDO::FETCH_OBJ); ?> <?php require 'database/conexao.php'; // Recebe o termo de pesquisa se existir $termo = (isset($_GET['termo'])) ? $_GET['termo'] : ''; // Verifica se o termo de pesquisa está vazio, se estiver executa uma consulta completa if (empty($termo)): $conexao = conexao::getInstance(); $sql = 'SELECT DISTINCT item.fk_tb_produtos, usu.nome, prod.nome_produto, prods.desc_prod, prods.peso_liq_prod, prods.un_medida, item.fk_tb_kit, kit.nome_kit, kit.preco_kit, prods.qtd_prod, kit.id_nome_kit, kit.desc_kit FROM tb_itemprodkit item /* tb_itemprodkit*/ INNER JOIN usuarios usu /* usuarios*/ ON item.fk_usuarios = usu.id INNER JOIN tb_produtos prods /* tb_produtos */ ON item.fk_tb_produtos = prods.id_prod INNER JOIN tb_kit kit /*tb_kit */ ON item.fk_tb_kit = kit.id_nome_kit INNER JOIN tb_produto prod ON prods.nome_prod = prod.id_produto WHERE fk_usuario = 5 GROUP BY kit.id_nome_kit '; $stm = $conexao->prepare($sql); $stm->execute(); $kit = $stm->fetchAll(PDO::FETCH_OBJ); else: // Executa uma consulta baseada no termo de pesquisa passado como parâmetro $conexao = conexao::getInstance(); $sql = 'SELECT * FROM tb_kit WHERE nome_kit LIKE :nome_kit OR desc_kit LIKE :desc_kit'; $stm = $conexao->prepare($sql); $stm->bindValue(':nome_kit', $termo.'%'); $stm->bindValue(':desc_kit', $termo.'%'); $stm->execute(); $kit = $stm->fetchAll(PDO::FETCH_OBJ); endif; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Listagem KITs </title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="css/custom.css"> </head> <body> <div class='container'> <fieldset> <!-- Cabeçalho da Listagem --> <legend><h1>Listagem de Kits</h1></legend> <!-- Formulário de Pesquisa --> <form action="" method="get" id='form-contato' class="form-horizontal col-md-10"> <label class="col-md-2 control-label" for="termo">Pesquisar</label> <div class='col-md-7'> <input type="text" class="form-control" id="termo" name="termo" placeholder="Infome o Nome ou E-mail"> </div> <button type="submit" class="btn btn-primary">Pesquisar</button> <a href='index.php' class="btn btn-primary">Ver Todos</a> </form> <!-- Link para página de cadastro --> <a href='kit_cadastro.php' class="btn btn-success pull-right">Cadastrar Kit</a> <div class='clearfix'></div> <?php if(!empty($kit)):?> <!-- Tabela de Clientes --> <table class="table table-striped"> <tr class='active'> <th>Foto</th> <th>produto</th> <th>Nome</th> <th>Descrição</th> <th>Preço</th> <th>Ação</th> </tr> <?php foreach($kit as $kit2):?> <tr> <td><img src='fotos/<?=$kit2->foto?>' height='40' width='40'></td> <?php foreach($kit3 as $kit4):?> <td> <?=$kit4->nome_produto.'<br>'; ?> </td><?php endforeach; ?> <td><?=$kit2->nome_kit?></td> </td> <td><?=$kit2->desc_kit?></td> <td><?='R$ '.$kit2->preco_kit.',00'?></td> <td> <a href='kit_editar.php?id_nome_kit=<?=$kit2->id_nome_kit?>' class="btn btn-primary">Editar</a> <a href='javascript:void(0)' class="btn btn-danger link_exclusao" rel="<?=$kit2->id_nome_kit?>">Excluir</a> </td> </tr> <?php endforeach;?> </table> <?php else: ?> <!-- Mensagem caso não exista clientes ou não encontrado --> <h3 class="text-center text-primary">Não existe Kit cadastrados!</h3> <?php endif; ?> </fieldset> </div> <script type="text/javascript" src="js/custom.js"></script> </body> </html> ....se alguem puder ajudar... -
Fiz uma iteração foreach para gerar categorias e subcategorias, pois não queria fazer DOIS SELECTS, ficando assim: //----> Foreach para gerar a categoria, pois são vários items com as mesmas chaves, portanto agrupo foreach($exibeLista as $row){ $dlD[$row["nameD"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } //----> Foreach para gerar subcategorias foreach($exibeLista as $row){ $dLA[$row["nameP"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "idAss"=>$row["idAss"], "idT"=>$row["idT"], "nameP"=>$row["nameP"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } $fsHTML = []; $rateD = 0; $qtdAss = 0; if(is_array($dlD) || is_object($dlD)){ foreach ($dlD as $key => $ds) { if ($key <> '' && $key <> NULL) { $rateD += (($ds[0]["qtdR"]*100)/$ds[0]["qtdF"]); $qtdAss += count($dlD[$key]); //----> Array para inserir HTML da Categoria criada e criar accordion $fsHTML[] = ' <div class="col-md-12 col-sm-12 col-xs-12"> <div class="x_panel overflow_hidden padding-into-row-qsts bg-white-row filtro-on"> <span class="rateD">'.ceil($rateD/$qtdAss).'%</span> <span class="opcao-into-top">'.$ds[0]["idD"].' - '.$ds[0]["nameD"].' <a class="collapse-link open-filter-qsts border-radius8"><i class="fa fa-chevron-up"></i></a></span> <div class="x_content" style="display:none;padding-top:10px"> <div class="accordion" id="accordion" role="tablist" aria-multiselectable="true"> '; //----> Verificar se a subcategoria contém a categoria, se contém é incluída na array foreach ($dLA as $keys => $ass) { if($ass[0]["idD"] == $ds[0]["idD"] ){ if($ass[0]['idT'] <> 0){ $link = 't='.$ass[0]['idT']; }else{ $link = 'a='.$ass[0]['idAss'];} $fsHTML[] = ' <div class="panel"> <a class="panel-heading collapsed" href="/v/fs/st?mz=y&type=c&'.$link.'"> <span class="eficiencia-accordion">'.ceil(($ass[0]['qtdR']*100)/$ass[0]['qtdF']).'%</span> <h4 class="panel-title">'.$ass[0]['nameP'].'</h4> <span class="unicamente">'.$ass[0]['qtdR'].' respondido de '.$ass[0]['qtdF'].'</span> </a> </div> '; }//if ass }//foreach ass }//if ds //----> Aqui é aonde ocorre o ERRO! Era pra fazer o fechamento do Accordion e gerar uma nova DIV. //No índice [0] isso ocorre normalmente, porém no [1] ela agrupa todos os accordions. (abaixo farei a amostra) $fsHTML[] = '</div></div></div></div>'; }//foreach ds }//if verifica se é array e se é objeto return implode('', array_unique($fsHTML)); O correto seria assim: - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria Como está acontecendo: - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria Não consigo entender de jeito nenhum pq o primeiro fecha corretamente e a partir do segundo não. Alguém me ajuda?
-
Olá, eu possuo o código: @foreach ($manga['chapters'] as $chapter) <div class="manga-chapter" > <h6 class="events-subtitle" style="left: -165px; top: 30px; position: relative;"> {{ link_to_route('front.manga.reader', "≫"." ".$chapter['chapter_name'], [$manga['manga_slug'], $chapter['chapter_slug']]) }} </h6> </div> @endforeach Mas ele acaba exibindo muitos itens, eu gostaria de limitar para apenas 5 itens, e que esses 5 itens, o menor fosse "apagado" e aparecesse o mais recente, exemplo: Atualmente: Item 5 Item 4 Item 3 Item 2 Item 1 Quando um novo item for publicado, ficaria: Item 6 Item 5 Item 4 Item 3 Item 2 Agradeço a ajuda, se puder pelo menos indicar um caminho, já ajuda muito, estou perdido aqui
-
oi galera, seguinte preciso salvar os dados de um carrinho no banco de dados olha só como fiz a gambiarra, me ajudem a consertar rsss array_map ( function ($id,$qdade,$valor) { echo 'idProd '.$id; echo ' qdadeProd '.$qdade; echo ' valorProd '.$valor; echo '<br>'; },$idProduto, $qdadeProduto, $valorProduto); já tenho os dados gravados no banco em um carrinho temporario agora depois que o cliente finalizar o pagamento eu quero jogar esses dados na tabela pedidos a saida esta pegando esses devidos valores $id - $qdade e $valor certinho mais não consigo jogar no banco de dados
-
O nome do produto está sendo inserido de forma repetitiva no Mysql
granderodeo posted a topic in PHP
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); } -
Como obter valores dentro de um loop foreach para gravar os valores selecionados
brendow posted a topic in PHP
Olá Pessoal! Como valores dentro de um loop foreach para gravar os valores selecionados, exemplo: $alunos = "1,2"; $arr = [$alunos]; foreach($arr as $dado => $value) { $list = explode(',', $value); PRECISO DE AJUDA AQUI e depois: mysqli_query($conn, "INSERT INTO tb_alunos (id) VALUES ('$???')"); } E quando isso acontece? $alunos = "1"; OU $alunos = ""; Desde já agradeço! -
Pessoal preciso mostrar na tabela o valor de nome, email e cotas o problema é que não estou conseguindo mostrar a quantidade de cotas porque preciso de 2 variaveis foreach ou 2 foreach. segue o codígo: <tbody> <?php if(!empty($indicados_nivel)){ foreach($indicados_nivel as $indicado){ $indicadoInfo = $this->conta_model->InfoUser($indicado); foreach ($cotas as $cota) { ?> <tr> <td width="200"> <?php echo $indicadoInfo->nome;?> </td> <td width="250"> <?php echo $indicadoInfo->email;?> </td> <td width="50"> <?php echo $cota->quantidade; ?> //Aqui Preciso Mostrar a Quantidade de cotas que cada usuario tem// </td> </tr> <?php } } ?> </tbody>
-
Alguém poderia me auxiliar pra fazer um loop com foreach para um sorteio?
André Monjardim posted a topic in PHP
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; } }