MySql insert with "Connection" between inserts

2

I have a problem here.

I need to upload multiple files and insert them into different tables.

The product table contains the details of the products and the photos table the files to access the images, but I need to list them according to the ID, how do I insert the photos into another table with the product id of the first one table?

<?php
if(isset($_POST['submitProduto'])){

//Caminho para salvar
$caminho = "uploads/";

$produto = trim($_POST["produto"]);
$informacao = trim($_POST["informacao"]);
$categoria = trim($_POST['categoria']);
$subCategoria = $_POST['subCategoria'];

// Verifica Checkbox
if (isset($_POST['destaque'])) {
    $destaque = 1;
}
else {
    $destaque = 0;
}


//Inseri imagem
for ($i = 0; $i < count($_FILES["fotos"]["name"]); $i++) {

    $nomeArquivo = $_FILES["fotos"]["name"][$i];
    $tamanhoArquivo = $_FILES["fotos"]["size"][$i];
    $nomeTemporario = $_FILES["fotos"]["tmp_name"][$i];

    if (!empty($nomeArquivo)) {

        $arquivoArray= explode(".", $nomeArquivo);
        $extensao = end($arquivoArray);

        $arquivo = $caminho.md5(time().rand(3212, 12043)).'.'.$extensao;

        move_uploaded_file($nomeTemporario, $arquivo);

        // lastInserId
        $last = $database::insert_id();

        $database::query("INSERT INTO produtos (nome,descricao,categoria,destaque, sub_categoria) VALUES ('".$produto."', '".$informacao."','".$categoria."','".$destaque."', '".$subCategoria."')");
        $database::query("INSERT INTO produtos_fotos (id_produto, imagem) VALUES ('".$last."', '".$arquivo."')");

        }
    }

$message = '<div class="alert alert-success text-center">Produtos cadastrados com sucesso!</div>';

}
?>
    
asked by anonymous 20.07.2015 / 21:17

1 answer

3

You need to leave out the first insert, and within the for yes put the insert of the images ... otherwise it will repeat several inserts of the products.

if(isset($_POST['submitProduto'])){

    //Caminho para salvar
    $caminho = "uploads/";

    $produto = trim($_POST["produto"]);
    $informacao = trim($_POST["informacao"]);
    $categoria = trim($_POST['categoria']);
    $subCategoria = $_POST['subCategoria'];

    // Verifica Checkbox
    if (isset($_POST['destaque'])) {
        $destaque = 1;
    }
    else {
        $destaque = 0;
    }


    //Inseri imagem
    $sqlInsere = $database::query("INSERT INTO produtos (nome,descricao,categoria,destaque, sub_categoria) VALUES ('".$produto."', '".$informacao."','".$categoria."','".$destaque."', '".$subCategoria."')");

    $sqlUltimoID = $database::query("SELECT * FROM produtos ORDER BY id LIMIT 0 , 1");
    $rowUltimoID = $database::row($sqlUltimoID);

    // lastInserId
    $last = $rowUltimoID['id'];


    for ($i = 0; $i < count($_FILES["fotos"]["name"]); $i++) {

        $nomeArquivo = $_FILES["fotos"]["name"][$i];
        $tamanhoArquivo = $_FILES["fotos"]["size"][$i];
        $nomeTemporario = $_FILES["fotos"]["tmp_name"][$i];

        if (!empty($nomeArquivo)) {

            $arquivoArray= explode(".", $nomeArquivo);
            $extensao = end($arquivoArray);

            $arquivo = $caminho.md5(time().rand(3212, 12043)).'.'.$extensao;

                if(move_uploaded_file($nomeTemporario, $arquivo)){
                    $database::query("INSERT INTO produtos_fotos (id_produto, imagem) VALUES ('".$last."', '".$arquivo."')");
                } else {
                    echo "Não foi possível enviar a imagem";    
                }
        }
    }

$message = '<div class="alert alert-success text-center">Produtos cadastrados com sucesso!</div>';

}
    
20.07.2015 / 21:30