Retrieve an Insert ID from a table and use it to create a relationship with another table

Asked

Viewed 258 times

2

Personal a great doubt, I am developing a classified site, I am recording the images and the ad at the same time, only the insertion queries are different, because the table of ads and images are different, how I can make the images added in the ad stay in the database with the ad id created?

Follows code:

<?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;
}
  • Next, http://pastebin.com/7peAwkwm

1 answer

1


Prepares the Insert in the table advertisements

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

Does the Insert

$cmd_insert_tabela_anuncios = mysql_query($sql_tabela_anuncios);

If true takes the ID that was generated

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

Mounts the Insert of the table images

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

Do the Insert in the table pictures

$cmd_insert_tabela_imagens = mysql_query($sql_tabela_imagens);

Mounts the 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: https://danilow.wordpress.com/2009/04/07/inserindo-registro-recuperando-id/

Browser other questions tagged

You are not signed in. Login or sign up in order to post.