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 Wallcrawler
      Olá pessoal tudo bem? Estou tentando fazer a cópia de uma imagem que está disponível na web e salvar em uma pasta no meu projeto. Essa imagem está sob protocolo SSL mas navegador consegue acessá-la normalmente. Mas o meu script php é bloqueado, e não entendo o porquê.
       
      Segue o código que estou usando:
      <?php //error_reporting(E_ALL ^ E_DEPRECATED); //ini_set('display_errors', 1); //die('Script travado!'); $start = microtime(true); set_time_limit(0); function save_image($inPath,$outPath) { //Download images from remote server $in = fopen($inPath, 'rb'); $out = fopen($outPath, 'wb'); while ($chunk = fread($in,8192)) { fwrite($out, $chunk, 8192); } fclose($in); fclose($out); } include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/classes/Rpi.class.php'); include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/functions.class.php'); $func = new FuncoesAuxiliares(); $rpi = new Rpi(); if(!isset($_GET['num_processo'])) { $rows = $rpi->Consulta('select num_processo, classe, especificacao from processos order by num_processo ASC limit 1'); } else { $rows = $rpi->Consulta("select num_processo, classe, especificacao from processos where num_processo > '" . $_GET['num_processo'] . "' order by num_processo ASC limit 1"); } $registros = 0; $arrayInsert = array(); $qtd_caracteres_total = 14; foreach ($rows as $rs) { //$rs['num_processo'] $zeros = ''; $qtd_char_processo = strlen($rs['num_processo']); //Fill zeros for($i=0; $i < ($qtd_caracteres_total - $qtd_char_processo); $i++) { $zeros .= '0'; } echo('BR5' . $zeros . $rs['num_processo'] . '<br>'); $url = 'http://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo']; //Aqui tento acessar a imagem e salvar na pasta correspondente save_image($url, __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg'); //copy('https://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo'], __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg'); $processo = $rs['num_processo']; $registros++; } $registros = number_format($registros, 0, ',', '.'); // Display Script End time $time_end = microtime(true); //dividing with 60 will give the execution time in minutes other wise seconds $execution_time = ($time_end - $start)/60; //execution time of the script echo '<b>Total Execution Time:</b> '. $execution_time .' Mins <hr><br><br>Registros: ' . $registros . '<br><br>'; echo("<a href='down_logo.php?num_processo=" . $processo ."' target='_self'>Próxima página</a><br><br>"); ?> O erro retornado é o seguinte:
       
      Warning: fopen(): SSL: Connection reset by peer in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10

      Warning: fopen(http://www.tmdn.org/tmview/trademark/image/BR500000825642590): failed to open stream: HTTP request failed! in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10

      Warning: fread() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 12

      Warning: fclose() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 16
       
      Só que se você tentar acessar o endereço no browser, diretamente, a imagem aparece:
       
      https://www.tmdn.org/tmview/trademark/image/BR500000825642590 
       
      Onde posso estar errando? Obrigado pela atenção de todos.
    • By violin101
      Caros amigos,
       
      saudações...
       
      Estou escrevendo uma rotina de Carrinho de Compras e estou com problema na Library CART.
       
      Quando a Descrição do Produto ultrapassa 25 caracteres, o CART não é inserido.
       
      A library CART, estou chamando direto no AUTOLOAD.
       
      Como consigo resolver esse problema ?
       
      O Código para inserir está assim:
      <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Carrinho extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('site/carrinho_model'); } public function index() { $this->addCart(); } public function addCart() { //Recebe dados via POST $id_produto = $this->input->post("idPrds"); $descricao = $this->input->post("namPrds"); //Problema nesse Campo quando ultrapassa 25 caracteres - Não INSERE $quantidade = $this->input->post("qtds"); $preco = $this->input->post("vlrPrds"); $insert_dados = array( 'id' => $id_produto, 'name' => $descricao, 'price' => $preco, 'qty' => $quantidade ); $this->cart->insert($insert_dados); $this->load->view('site/estilo/header', $this->data); $this->load->view('site/carrinho'); } }  
       
      Grato,
       
      Cesar
       
       
       
       
    • By Bruno Ferreira da Silva
      Estou utilizando laravel 5.8.
      Meu problema é o seguinte, estou realizando o login com usuário e senha. O sistema entra na condição e debuga corretamente o usuário logado. e no mesmo momento que eu altero a url para ..../dashboard, ele redireciona como se estivesse deslogando. mas na segunda tentativa isso não acontece, ele realiza o login normalmente. Ai isso se repete sempre que troca de usuário. 
       
      O controller da dashboard chama apenas a view e mais nada. 
      public function authenticate(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { dd(Auth::user()); return redirect()->intended('dashboard'); } }  
    • By Sapinn
      Estou trazendo os dados do banco de dados e eles estão vindo com problema na acentuação
      uso o seguinte codigo no php
      <?php
      include_once ‘…/php/conexao.php’;
      header(‘Content-Type: text/html; charset=utf-8’);
      mysqli_query($conn,“SET NAMES ‘utf8’”);
      mysqli_query($conn,‘SET character_set_connection=utf8’);
      mysqli_query($conn,‘SET character_set_client=utf8’);
      mysqli_query($conn,‘SET character_set_results=utf8’);
      ?>
      E no html
      Mesmo assim as palavras com acento ficam com aquele erro desgraçado com a interrogação
      Alguem me ajuda ai
×

Important Information

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