
Como usar o foreach para pegar pegar todos os "produtos" de um grupo na coluna?
By
Carlos Antoliv, in PHP
-
Similar Content
-
By Sapinn
Fala galera tudo beleza? Então alguém sabe como adicionar e remover campos de texto com js. Tipo teria um botão com um + "mais" para adicionar novos campos e junto a estes campos teria um ícone com um lixeira para remover, toda vez que fosse clicado nesse ícone o campo seria removido, apenas aquele campo. Encontrei um código para adicionar um campo mas a parte de remover ta dando dor de cabeça
<!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Pagina</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css"> </head> <body> <form id="myForm"> <div id="lines"></div> <button type="button" onclick="addInput('lines')">+</button> <input type="submit" value="Enviar"> </form> <script> var formLine = 1; function addInput(divName) { var newdiv = document.createElement('div'); newdiv.innerHTML += '<input type="text" name="produto" id='+formLine+'>'; newdiv.innerHTML += ' <i class="bi bi-trash-fill"></i>'; document.getElementById(divName).appendChild(newdiv); formLine++; } addInput('lines'); </script> </body> </html>
-
By Kefatif
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.
-
By marcossantana10
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
-
By eiwes
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?
-
By ViniciusRamoa
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
-