Retrieve the ID of an insert in a table and use it to create a relationship with another table

2

Personal a big question, I'm developing a classifieds site, I'm recording the images and the ad at the same time, but the insertion queries are different, because the ad table and images are different, how can I do do the images added to the ad remain in the database with the ad ID you created?

Follow the code below:

<?php

// Chama o arquivo com a classe WideImage
require_once("cabecalho.php");
require_once("wideImage/WideImage.php");
require_once("imagem-banco.php");
verificaUsuario();

$titulo = $_POST['titulo'];
$descricao = $_POST['descricao'];
$telefone = $_POST['telefone'];
$endereco = $_POST['endereco'];
$preco = $_POST['preco'];
$idUsuario = $_SESSION['id_usuario_logado'];

if(!isset($_POST['categorias'])){
    $_SESSION['danger'] = 'Por favor informe a categoria';
} else if(isset($_POST['subcategorias'])){
    $categoria = $_POST['categorias'];
    $subCategoria = $_POST['subcategorias'];
}else {
    $categoria = $_POST['categorias'];
    $subCategoria = "";
}

insereAnuncio($conexao, $titulo, $descricao, $telefone, $endereco, $preco, $categoria, $subCategoria, $idUsuario);




// Carrega a imagem a ser manipulada
$image = WideImage::loadFromUpload('imagem', 'imagem.php');
$imagemExtensao = $_FILES['imagem']['name'];
$id_usuario = $_SESSION['id_usuario_logado'];

foreach ($image as $indice => $imagem) {
    $extensao = $imagemExtensao[$indice];
    $extensaoDaImagem = pathinfo($extensao, PATHINFO_EXTENSION);
    $imagemFinal = $imagem->resize(400, 300);
    $geraNome = md5(time().rand());
    $imagemFinal->saveToFile('imagens/usuarios/' . $geraNome .'.'.$extensaoDaImagem);
    $nomeMiniatura = $geraNome.'.'.$extensaoDaImagem;
    $nomeOriginal = md5($extensao).'.'.$extensaoDaImagem;
    $imagem->saveToFile('imagens/usuarios/' . $nomeOriginal);
    insereImagem($conexao, $nomeMiniatura, $nomeOriginal, $id_usuario);
}

Function insereAnuncio :

function insereAnuncio($conexao, $titulo, $descricao, $telefone, $endereco, $preco, $categoria, $subCategoria, $idUsuario){
    $query = "insert into anuncios (titulo, descricao, telefone, endereco, preco, categoria, subcategoria, idUsuario) values ('{$titulo}', '{$descricao}', {$telefone}, '{$endereco}', {$preco}, '{$categoria}', '{$subCategoria}', '{$idUsuario}'";
    var_dump($query);
    die();  
}

Function insereImagem :

function insereImagem($conexao, $nomeDaThumb, $nomeOriginal, $usuario){
    $query = "insert into imagens (thumb, original, data, id_user) values ('{$nomeDaThumb}', '{$nomeOriginal}', now(), '{$usuario}')";
    //var_dump($query);
    $resultado = mysqli_query($conexao, $query);
    return $resultado;
}
    
asked by anonymous 19.02.2015 / 23:35

1 answer

1

Prepares the insert in the ads table

$sql_tabela_anuncios = “INSERT INTO anuncios (titulo, descricao, telefone, endereco, preco, categoria, subcategoria, idUsuario) values ('{$titulo}', '{$descricao}', {$telefone}, '{$endereco}', {$preco}, '{$categoria}', '{$subCategoria}', '{$idUsuario}'";

Make the insert

$cmd_insert_tabela_anuncios = mysql_query($sql_tabela_anuncios);

If true, get the ID that was generated

if ($cmd_insert_tabela_anuncios) {
$id_registro = mysql_insert_id($cmd_insert_tabela_anuncios);
}

Mount the insert of the images table

$sql_tabela_imagens = “INSERT INTO imagens (thumb, original, data, id_user, id_anuncio) values ('{$nomeDaThumb}', '{$nomeOriginal}', now(), '{$usuario}', ‘{$id_registro}’)";

Make the insert into the images table

$cmd_insert_tabela_imagens = mysql_query($sql_tabela_imagens);

Mount to select in the table images according to your need

$sql_select = "SELECT thumb, orginal, data, id_user FROM imagens WHERE id_anuncio = ID DO ANUNCIO"

source: link

    
20.02.2015 / 00:10