retrieve the record id from the table [closed]

1

I have no idea how to retrieve the'id' from my table without passing it through the form

I have the following form

NEWS

<form method="post" autocomplete="off">

    <div class="input">
        <label>nome<strong>*</strong></label>
        <input type="text" name="nome"/>
    </div>

    <div class="input">
        <label>tags<strong>*</strong></label>
        <input type="text" name="tags"/>
    </div>

    <div class="btn">
        <input type="hidden" name="postar" value="postou"/>
        <input type="submit" value="próximo passo"/>
    </div>

</form>

PHP

if(isset($_POST['postar'])&&$_POST['postar']=='postou'){
    var_dump($_POST);
    //verifico se a noticia ja foi postada
    $vDup=$conn->prepare("SELECT id,nome FROM 'noticias' WHERE 'nome' = '".$_POST['nome']."'");

    $vDup->execute();

    $count=$vDup->rowCount($_POST['nome']);

    if($count>=1){
        echo "<span class='msg erro'>Essa notícia já foi publicada.</span>";
    }else{
        if(empty($_POST['nome'])){
            echo "O nome da notícia não pode ficar vazia.";
        }else{

            //modificação
            $pID=$vDup->fetchAll(PDO::FETCH_OBJ);
            foreach($pID AS $listID){
            $id=$listID->id;

            $id=$id;

            $nome=trim($_POST['nome']);
            $slug=$_POST['nome'];
            $tags=trim($_POST['tags']);

            $insertNoticia=$conn->prepare("INSERT INTO 'noticias' (nome,slug,tags) VALUES ('$nome','$slug','$tags')");

            $insertNoticia->execute();

            if($insertNoticia){
                //preciso recuperar o id da minha notícia nessa url
                header("refresh: 3;painel.php?p=escrever-noticia&chave=".$_SESSION['id']."&autor=".$_SESSION['login']."&slug=".$slug."&id=".$id."");
                echo "<span class='msg sucesso'>Processando, aguarde...</span>";
            }else{
                echo "<span class='msg erro'>Erro ao postar essa notícia.</span>";
            }
          }//fecha o foreach
        }
    }
}
  

link

My problem is to recover this'id', as I do not pass via post nor get, I do not know how to recover it, this other page that the form sends when the news is posted, refers to another table, what I need and retrieve the'id' from the news table, to link the two

    
asked by anonymous 12.12.2018 / 18:18

1 answer

2

Checking your code you are rewriting the id, which you get, but since it does not yet exist, the correct one would be to insert it into the database to get the id of the last record.

if(isset($_POST['postar'])&&$_POST['postar']=='postou'){
    var_dump($_POST);
    //verifico se a noticia ja foi postada
    $vDup=$conn->prepare("SELECT id,nome FROM 'noticias' WHERE 'nome' = '".$_POST['nome']."'");

    $vDup->execute();

    $count=$vDup->rowCount();

    if($count>=1){
        echo "<span class='msg erro'>Essa notícia já foi publicada.</span>";
    }else{
        if(empty($_POST['nome'])){
            echo "O nome da notícia não pode ficar vazia.";
        }else{

            $nome=trim($_POST['nome']);
            $slug=$_POST['nome'];
            $tags=trim($_POST['tags']);

            $insertNoticia=$conn->prepare("INSERT INTO 'noticias' (nome,slug,tags) VALUES ('$nome','$slug','$tags')");

            $insertNoticia->execute();
            $id = $conn->lastInsertId();
            if($insertNoticia){
                //preciso recuperar o id da minha notícia nessa url
                header("refresh: 3;painel.php?p=escrever-noticia&chave=".$_SESSION['id']."&autor=".$_SESSION['login']."&slug=".$slug."&id=".$id."");
                echo "<span class='msg sucesso'>Processando, aguarde...</span>";
            }else{
                echo "<span class='msg erro'>Erro ao postar essa notícia.</span>";
            }          
        }
    }
}

I removed the foreach, and added the lastInsertId () to get the last id inserted in the database.

    
12.12.2018 / 20:46