Use ID generated from one FORM on another and do UPDATE on bd

1

IsavedthisimageinthedatabaseandgeneratedtheID:20.

Formtowrite:INICIAL.PHP(Codetorecordimage)

<html><head><title></title></head><body><formenctype="multipart/form-data" method="post">
        <input type="file" name="image" /><br /> 
        <input type="submit" value="Enviar" name="sumit" />
    </form>
    <?php

    if(isset($_POST['sumit']))
    {
        if(getimagesize($_FILES['image']['tmp_name'])== FALSE)
        {
            echo "Selecione uma imagem.";
        }
        else
        {
            $image = addslashes($_FILES['image']['tmp_name']);
            $name = addslashes($_FILES['image']['name']);
            $image = file_get_contents($image);
            $image = base64_encode($image);
            saveimagem($name, $image);
        }
    }
    mostrarimagem();
    function saveimagem($name, $image)
    {

        $host = "localhost";
        $user = "root";
        $pass = "";
        $conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());
        mysqli_select_db($conexao, "teste");
        $sql = "insert into cadastro (foto)  values ('$image')";
        $result = mysqli_query($conexao, $sql);
        if($result)
        {
            echo "<br/>Foi feito o upload" ;
            $id = mysqli_insert_id($conexao);
            echo $id;
        }else
        {
            echo "<br/>Não foi feito o upload";
        }
    }
    function mostrarimagem()
    {
        $host = "localhost";
        $user = "root";
        $pass = "";
        $conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());
        mysqli_select_db($conexao, "teste");
        $sql = "select * from cadastro";
        $result = mysqli_query($conexao, $sql);

        while($row = mysqli_fetch_array($result))
        {
            echo '<img height="300" width="300" src="data:image;base64,'.$row[11].'">';
        }
        mysqli_close($conexao);
    }

    ?>
</body>

Where has $id = mysqli_insert_id($conexao); is the variable that stored the last record in the database. I need to use it for the update in another form.

GRAVAR.PHP

<?php
//Irá receber os valores enviados e guardar no banco de dados

<?php
//Irá receber os valores enviados e guardar no banco de dados
if($_POST['enviar']){
    include 'inicial.php';
    $nome = $_POST['NomeAluno'];
    $dataNasc = $_POST['DataNasc'];
    $sexo = $_POST['Sexo'];
    $numcel = $_POST['Celular'];
    $numtel = $_POST['Telefone'];
    $endereco = $_POST['Endereco'];
    $numres = $_POST['NumResid'];
    $uf = $_POST['UF'];
    $rg = $_POST['RG'];
    $prontuario = $_POST['Prontuario'];
    $datavalidade = $_POST['DataValidade'];
    $curso = $_POST['Curso'];
    $semestre = $_POST['Semestre'];
    $periodo = $_POST['Periodo'];
    $email = $_POST['Email'];
    $senha = $_POST['Senha'];

    //"$sql = "SELECT MAX(ID) FROM cadastro";

    // Insere os dados no banco
    $sql = mysqli_query($conexao, "UPDATE cadastro set
                                        nome_aluno = ':$nome',
                                        data_nascimento = ':$dataNasc',
                                        sexo = ':$sexo', 
                                        celular = ':$numcel',
                                        telefone = ':$numtel',
                                        endereco = ':$endereco',
                                        numero = ':$numres',
                                        uf = ':$uf',
                                        rg = ':$rg',
                                        prontuario = ':$prontuario',
                                        data_validade = ':$datavalidade',
                                        curso = ':$curso',
                                        semestre = ':$semestre',
                                        periodo = ':$periodo',
                                        email = ':$email',
                                        senha = ':$senha'
                                  where id = '$id'");

    // Se os dados forem inseridos com sucesso
    if ($sql){
        echo "Você foi cadastrado com sucesso.";
    }
}
?>

I can not do UPDATE of the table with the other values, without touching the photo that was already recorded. And using the variable $ id, I even put the include 'inicial.php'; .

I do not know if my Update SQL is wrong, but when I click the save button this error appears: P Notice: Undefined variable: id in C:\wamp\www\ifsp\gravar.php on line 45

    
asked by anonymous 01.10.2015 / 04:51

2 answers

0

First make the function return the id inserted with a return $id .

function saveimagem($name, $image) {

//codigo omitido

   if($result){
      echo "<br/>Foi feito o upload" ;
      $id = mysqli_insert_id($conexao);
      echo $id;
      return $id;   //<--- linha adicionada
   }else{
      echo "<br/>Não foi feito o upload";
   }
   return false;
}

Then in save.php get the saveimagem() id with an assignment, then pass the variable in update

gravar.php

else {
    $image = addslashes($_FILES['image']['tmp_name']);
    $name = addslashes($_FILES['image']['name']);
    $image = file_get_contents($image);
    $image = base64_encode($image);
    $id_imagem = saveimagem($name, $image); //<--- linha nova atribuição
}

Dai lá non update, pass the $ id_imagem.

where id = $id_imagem");
    
01.10.2015 / 05:50
0

Look at the following, let's make your code simpler!

Create a new file

It can be called a connection

connection.php

    $host = "localhost";
    $user = "root";
    $pass = "";
    $conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());
  //Conectar

Initial.PHP

 <?php session_start(); ?>
<html>
 <head>
    <title></title>
 </head>
 <body>
    <form enctype="multipart/form-data" method="post">
        <input type="file" name="image" /><br /> 
        <input type="submit" value="Enviar" name="sumit" />
    </form>
    <?php

    if(isset($_POST['sumit']))
    {
        if(getimagesize($_FILES['image']['tmp_name'])== FALSE)
        {
            echo "Selecione uma imagem.";
        }
        else
        {
            $image = addslashes($_FILES['image']['tmp_name']);
            $name = addslashes($_FILES['image']['name']);
            $image = file_get_contents($image);
            $image = base64_encode($image);
            include_once 'conexao.php';
            saveimagem($name, $image);
        }
    }

    mostrarimagem();

    function saveimagem($name, $image)
    {
        mysqli_select_db($conexao, "teste");
        $sql = "insert into cadastro (foto)  values ('$image')";
        $result = mysqli_query($conexao, $sql);
        if($result)
        {
            echo "<br/>Foi feito o upload" ;
            $_SESSION['id_temp'] = mysqli_insert_id($conexao);
            echo $id;
        }else
        {
            echo "<br/>Não foi feito o upload";
        }
    }

    function mostrarimagem()
    {
        mysqli_select_db($conexao, "teste");
        $sql = "select * from cadastro";
        $result = mysqli_query($conexao, $sql);

        while($row = mysqli_fetch_array($result))
        {
            echo '<img height="300" width="300" src="data:image;base64,'.$row[11].'">';
        }
        mysqli_close($conexao);
    }

    ?>
</body>
</html>

Save.php

<?php
session_start();
//Irá receber os valores enviados e guardar no banco de dados
if($_POST['enviar']){
    include_once 'conexao.php';
    $nome = $_POST['NomeAluno'];
    $dataNasc = $_POST['DataNasc'];
    $sexo = $_POST['Sexo'];
    $numcel = $_POST['Celular'];
    $numtel = $_POST['Telefone'];
    $endereco = $_POST['Endereco'];
    $numres = $_POST['NumResid'];
    $uf = $_POST['UF'];
    $rg = $_POST['RG'];
    $prontuario = $_POST['Prontuario'];
    $datavalidade = $_POST['DataValidade'];
    $curso = $_POST['Curso'];
    $semestre = $_POST['Semestre'];
    $periodo = $_POST['Periodo'];
    $email = $_POST['Email'];
    $senha = $_POST['Senha'];

    // Insere os dados no banco
    $sql = mysqli_query($conexao, "UPDATE cadastro set
                                        nome_aluno = '$nome',
                                        data_nascimento = '$dataNasc',
                                        sexo = '$sexo', 
                                        celular = '$numcel',
                                        telefone = '$numtel',
                                        endereco = '$endereco',
                                        numero = '$numres',
                                        uf = '$uf',
                                        rg = '$rg',
                                        prontuario = '$prontuario',
                                        data_validade = '$datavalidade',
                                        curso = '$curso',
                                        semestre = '$semestre',
                                        periodo = '$periodo',
                                        email = '$email',
                                        senha = '$senha'
                                  where id =".$_SESSION['id_temp']);

    // Se os dados forem inseridos com sucesso
    if ($sql){
        echo "Você foi cadastrado com sucesso.";
        if(isset($_SESSION['id_temp'])){
            unset($_SESSION['id_temp']);
        }else{
            echo "<script>alert('ocorreu um erro, pois a session para o id não foi criada')</script>";
        }
    }
    
01.10.2015 / 05:52