Jump to content
leocouto

Pegar último dado específico de uma tabela.

Recommended Posts

Pegar um dado específico de uma tabela, caso tenha mais de um item cadastrado sempre vai pegar o último.

<form name="editaFornecedor"<?php +1?> action="edit_forne.php" id="editaFornecedor" method="POST">
             <!-- Pegando todos os fornecedores cadastrados... -->
              <table class="table table-striped">
                    <thead class="thead-dark">
                        <tr>
                            <th scope="col">ID</th>
                          <th scope="col">Nome</th>
                          <th scope="col">Fone</th>
                          <th scope="col">CNPJ</th>
                          <th scope="col">Rua</th>
                          <th scope="col">Número</th>
                          <th scope="col">Bairro</th>
                          <th scope="col">Estado</th>
                          <th scope="col">Cidade</th>
                          <th scope="col">CEP</th>
                          <th scope="col">E-mail</th>
                          <th scope="col">Observação</th>
                          <th scope="col">Editar|Deletar</th>
                        </tr>
                    </thead>
                <?php
                    @session_start();
                    include('conexao.php');

                    $fornecedor = mysqli_query($conexao, "SELECT * FROM fornecedor");

                    $linhas = mysqli_num_rows($fornecedor);

                    while ($linhas = mysqli_fetch_array($fornecedor)) {
                        
                ?>
                    <tbody>
                        <tr>
                          <td><?php echo $linhas['id_fornecedor']; ?></td>
                          <td><?php echo $linhas['nome']; ?></td>
                          <td><?php echo $linhas['fone']; ?></td>
                          <td><?php echo $linhas['cnpj']; ?></td>
                          <td><?php echo $linhas['rua']; ?></td>
                          <td><?php echo $linhas['numero']; ?></td>
                          <td><?php echo $linhas['bairro']; ?></td>
                          <td><?php echo $linhas['estado']; ?></td>
                          <td><?php echo $linhas['cidade']; ?></td>
                          <td><?php echo $linhas['cep']; ?></td>
                          <td><?php echo $linhas['email']; ?></td>
                          <td><?php echo $linhas['observacao']; ?></td>
                          <td>
                            <button type="submit" class="btn btn-secondary" style="height: 35px; width: 100px"><i class="material-icons">description</i>Editar</button><br>
                            <button type="button" class="btn btn-danger" style="height: 35px; width: 100px"><i class="material-icons">delete</i>Deletar</button>
                        </td>
                        <td><input type="text" name="id_fornecedor" value="<?php echo $linhas['id_fornecedor'];?>"></td>
                        </tr>
                    </tbody>
                    
                <?php 
                    }
                ?>
                </table>
            <!-- Fim da exibição de todos os fornecedores cadastrados.. -->
            </form>

 

 

======================================================================================================================================================

Aqui no MYSQL só pega o último item da tabela.. Não pega o que foi clicado no botão.

<?php
include('conexao.php');
session_start();

//$cnpj=$_POST['cnpj'];
$id_fornecedor=$_POST['id_fornecedor'];
echo $id_fornecedor;

?>

=======================================================================================================================================================

É desse modelo da imagem, mas na hora que clico em editar no mysql aparece o último id e não na linha que cliquei, se eu clicar no primeiro na outra página aparece o id 4, que é o ultimo, quem pode me dar essa força? Ficarei muito grato.

image.thumb.png.5754caacf45ab0f0c15a6a7ea1fcd909.png

Share this post


Link to post
Share on other sites

@leocouto Bom dia!

 

Bom o que está acontecendo, é que quando você faz o loop dos resultados do banco de dados, você acaba adiciona dois elemento com o mesmo name(nome) = id_fornecedor em um único form, e o que está passando para a requisição post, para a página edit_forne.php é o ultimo.

 

O que está acontecendo no seu form é +- isso:

<form name="editaFornecedor" action="edit_forne.php" id="editaFornecedor" method="POST">
  	<?php while ($linhas = mysqli_fetch_array($fornecedor)) { ?>
	<input type="text" name="id_fornecedor" value="<?php echo $linhas['id_fornecedor'];?>"> 
  	<?php } ?>
</form>

// Resultado na página

<form name="editaFornecedor" action="edit_forne.php" id="editaFornecedor" method="POST">
	<input type="text" name="id_fornecedor" value="3"> 
	<input type="text" name="id_fornecedor" value="4"> <!-- O ultimo elemento com o mesmo nome vai acabar sobrescrever o valor -->
</form>

 

Para resolver isso, você tem diversas opções, você pode fazer um link e passar o id via método GET, ou adicionar um form para cada input com o name id_fornecedor.

 

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Salvatore
      Galera alguem poderia me explicar como faço isto ultilizando php? estou perdido
      tenho que usar varias imagens?
       
      De acordo que ele clica e seleciona a poltrona ela muda de cor 
      RED: OCUPADA
      AZUL: LIVRE

    • By drx
      Olá feras!
       
      Estou recebendo este retorno da conexão: SQLSTATE[HY000] [1049] Base 'dbbase' inconnue
       
      O que é que pode ser?
       
      Tudo certinho. Fala que a dbbase não existe, mas existe.
      Alguém tem uma solução ?
       
      Desde já agradeço.
    • By helkton
      ola galera, dúvida besta, mais ja estou quebrando a cabeça,
      seguinte estou preso  num select <option> vindo do banco de dados
      fiz alguns com o if(){}
      mais é pra saber tipoImovel - interesseImovel ou finalidadeImovel
      esses ai são poucos, ficou dboas fazer um if(){} pra cada. Agora pensa comigo...
      Tenho uma TABELA clientes, guardo as informações dos clientes
      Tenho outra tabela imoveis, com os dados do imóvel e tbm com o cliente que cadastrou o imovel,
      na pagina pra editar-imovel.php, monto o <option> pra consultar na tabela clientes todos os clientes cadastrados, como deixo "selected" no nome do cliente que cadastrou o imóvel??
    • By eduardaarosaa
      Ola!! Estou tentando fazer o upload de múltiplos arquivos usando o laravel. Mas  estou tendo o seguinte erro ao tentar cadastrar: 
      "Call to undefined method Symfony\Component\HttpFoundation\FileBag::extension()"  
      Meu controller:
        public function cadastro_info(Request $request)
          {
              $dataForm = $request->except('_token');
              $nameFile = null;
              $loop = count($request->files);
              for ($i=0; $i< $loop; $i++) {
             
                  $name = uniqid(date('HisYmd'));
                  $extension = $request->files->extension();
                  $nameFile = "{$name}.{$extension}";

                  $upload = $request->files->storeAs('upload', $nameFile);
                }
                  if (!$upload)
                      return redirect()
                          ->back()
                          ->with('error', 'Falha ao fazer upload')
                          ->withInput();
              }
      Minha rota:
       Route::post('/cadastro_empresa', 'Site\SiteController@cadastro_info')->name('cadastro_info');
       
      O que estou carregando no controller:
      use Illuminate\Http\Request;
      use DB;
      use App\Http\Controllers\Controller;
      use App\Models\Site\cadastro;
       
      Gerei o link para o storage já 
       
      Alguém sabe dizer o motivo do erro?
       
      Obrigada!!!
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.