Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabio G

Foreach pegando só um registro

Recommended Posts

Estou desenvolvendo uma tela de cadastro de fornecedor, porem o meu foreach está pegando só o ultimo registro num total de 3 registros.

O que eu possa estar fazendo de errado?

Abaixo o meu código e em anexo a minha tela.

Muito obrigado

 

<thead>
            
            <tr style="background-color: #CEF6EC">
              <th>ID</th>
              <th>Nome Fornecedor</th>
              <th class="d-none d-sm-table-cell">Contato</th>
              <th class="d-none d-lg-table-cell">Telefone</th>
              <th width="100" class="text-center">Ações</th>
            </tr>
          </thead>
          <tbody>

            <?php
            $sql = "SELECT id,nome,con,tel FROM cad_for ";

            $sql = $pdo->query($sql);

            If($sql->rowCount()>0){
              foreach($sql->fetchAll() as $fornecedor){
              }
            }
            ?>

            <tr>
              <td><?php echo $fornecedor['id']; ?></td>
              <td><?php echo $fornecedor['nome']; ?></td>
              <td class="d-none d-sm-table-cell"><?php echo $fornecedor['con']; ?></td>
              <td class="d-none d-lg-table-cell"><?php echo $fornecedor['tel']; ?></td>

              <td>
                <a href="visualizar.php?id=<?php echo $fornecedor['id']; ?>" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="left" title="Visualizar"><i class="fas fa-eye"></i></a>
                <a href="editar.php?id=<?php echo $fornecedor['id']; ?>" class="btn btn-outline-warning btn-sm" data-toggle="tooltip" data-placement="left" title="Editar cadastro"><i class="fa fa-fw fa-edit"></i></a>
              </td>
            </tr>fornecedor.thumb.JPG.20fb6b8a4cb573ff995fbc3f5ced03f3.JPG

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
Veja onde deve ficar o corpo da sua tabela:

If($sql->rowCount()>0){
              foreach($sql->fetchAll() as $fornecedor){

AQUI
              }
            }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você esta colocando o corpo de sua tabela fora do foreach, sendo assim os resultados sempre serão sobrepostos ao anterior e permanecendo o ultimo registro.

É só fazer isso.

Abraços..

  <?php
            $sql = "SELECT id,nome,con,tel FROM cad_for ";

            $sql = $pdo->query($sql);

            if($sql->rowCount()>0){
              foreach($sql->fetchAll() as $fornecedor){
              	echo ' <tr>
              <td>'.$fornecedor['id'].'></td>
              <td>'.$fornecedor['nome'].'></td>
              <td class="d-none d-sm-table-cell">'.$fornecedor['con'].'</td>
              <td class="d-none d-lg-table-cell">'.$fornecedor['tel'].'</td>

              <td>
                <a href="visualizar.php?id='.$fornecedor['id'].'" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="left" title="Visualizar"><i class="fas fa-eye"></i></a>
                <a href="editar.php?id='.$fornecedor['id'].'" class="btn btn-outline-warning btn-sm" data-toggle="tooltip" data-placement="left" title="Editar cadastro"><i class="fa fa-fw fa-edit"></i></a>
              </td>
            </tr>';
              }
            }
            ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Willian Simione
      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

    • Por Giovanird
      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!
    • Por Giovanird
      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;  
    • Por Ruyter
      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.
    • Por k9studio
      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
      }
×

Informação importante

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