Ir ao conteúdo
  • Cadastre-se

PHP insert_id só é exibida depois que o formulário é enviado, não fica visível antes


Posts recomendados

minha pagina contém uma table que

exibe a ultima id da minha DB porém ela não fica ativa.

a ultima id só é exibida se o form tiver sido enviado.

↓table onde é exibida a Insert_id

<table class="table table-dark" method="POST" action="processa.php">
  <thead>
    <tr>
      <th scope="col">#</th>
      <th scope="col">Ultimo ID</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">1</th>

      <td>

        <?php   if(isset($_SESSION['id'])){
      echo $_SESSION['id'];
    } ?></td>
    </tr>

  </tbody>
</table>

Agora a conexao.php

<?php
session_start();
$servidor = "localhost";
$usuario = "root";
$senha = "";
$dbname = "contas";

//Criar a conexao
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);


$nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING);
$face = filter_input(INPUT_POST, 'face', FILTER_SANITIZE_STRING);
$numeros = filter_input(INPUT_POST, 'numeros', FILTER_SANITIZE_STRING);
//echo "Nome: $nome <br>";
//echo "E-mail: $email <br>";

$result_usuario = "INSERT INTO usuarios (nome, face, numeros, created) VALUES ('$nome', '$face', '$numeros', NOW())";

if ($conn->query($result_usuario) === TRUE) {
    $id = $conn->insert_id;
$_SESSION['id'] = "" . $id;
} else {
    echo "Error: " . $result_usuario . "<br>" . $conn->error;
}

$resultado_usuario = mysqli_query($conn, $result_usuario);

if(mysqli_insert_id($conn)){
	$_SESSION['msg'] = "<div class='alert alert-success' role='alert'>
  Parabéns agora você está participando!
</div>";
	header("Location: index.php");
}else{
	$_SESSION['msg'] = "<div class='alert alert-danger' role='alert'>
  OPS! Parece que você já está participando, espere por outro sorteio e volte!
</div>";
	header("Location: index.php");
}

 

Link para o comentário
Compartilhar em outros sites

Olá!
O índice 'id' na sessão só vai existir se atendida a condição

41 minutos atrás, LuanCSM disse:

if ($conn->query($result_usuario) === TRUE) { $id = $conn->insert_id; $_SESSION['id'] = "" . $id; }

No momento do "primeiro acesso" ao formulário, o índice 'id' ainda não existe na sessão.

 

Se o sr. precisa que o índice 'id' exista na sessão desde o primeiro acesso, vai ser preciso:
1) fazer uma busca pela id mais recente,
2) guardá-la na sessão
3) exibir o form (agora já com a id mais recente)

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@washalbano Opá bom dia irmão, consegui arrumar o erro graças a tua dica :) Obrigado!

index.php

<?php 

require 'conexao.php';
$sql = "SELECT * FROM usuarios ORDER BY id DESC";
$sql = $conn->query($sql);
$row = $sql->fetch_assoc();;

$ultimo_id = $row['id'];

?>

eu usei esse código e estava dando o mesmo resultado, de o id só aparecer quando um formulário fosse preenchido, ai eu me liguei que poderia ser no banco de dados, esqueci de colocar o id como nulo ;)  agora tá pegando suave, mt obrigado! 

 

agora fico na duvida se outro código usando estava dando erro por causa disso kkkk

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...