Q: PHP/MySQL Juntar Categoria a Materia Bom pessoal nunca tive muito interesse na área back-end, porem por motivos maiores estou tendo que aprender.
Até o momento o básico já consigo fazer, que são inserir, deletar, atualizar, visualizar os dados usando o php/mysql.
Agora me deparei com um problema que não consegui fazer usando as apostilas, que e cadastrar uma matéria em uma determinada categoria.
Tentei fazer um INSERT seguido de um SELECT porem não obtive sucesso, pois a matéria não muda a id_cat, a mesma fica com o valor "0" e não com o valor "1" que seria de referencia a categoria.
Se alguém puder me dar um exemplo de como ficaria o INSERT + SELECT ficaria grato.
Desde já um muito obrigado.
(OBS: Não estou usando OO..., estou fazendo da forma velha com o mysql_, que e a forma mais fácil de se aprender.)
Código completo, adicionei o id_cat mais continua gerando id 0, para verificar se ele pelo menos estava identificando o SELECT mudei o id_cat de int pra varchar e o mesmo registro o nome da categoria no id_cat normalmente.
<?php
if(isset($_POST['enviar'])) {

    $id_cat = $_POST['cat_lancamentos'];
    $titulo = $_POST['titulo'];
    $original = $_POST['original'];
    $capa = $_FILES["capa"] ["name"];
    $lancamento = $_POST['lancamento'];
    $genero = $_POST['genero'];
    $diretor = $_POST['diretor'];
    $sinopse = $_POST['sinopse'];
    $midia = $_POST['video'];

    $caminho_img = "../capas/";    
    if(move_uploaded_file($_FILES["capa"]["tmp_name"],$caminho_img."/".$capa)) {    
    $mysql_path = $caminho_img."/".$capa;

            $sql=mysql_query("INSERT INTO lancamentos  VALUES('', '$id_cat', '$titulo', '$original', '$capa', '$diretor', '$lancamento', '$genero', '$midia', '', '', '$sinopse')");
            echo "INSERT INTO lancamentos VALUES('', '$id_cat', '$titulo', '$original', '$capa', '$diretor', '$lancamento', '$genero', '$midia', '', '', '$sinopse')";
            if($sql)

            {
                header("location: lancamentos-gerenciar.php");
        }
    }
}
?>

<form method="post" action="" enctype="multipart/form-data">
<pedido>
<botaoexcluir><a href="#"><font color="red">Cancelar</font></a></botaoexcluir> <botaoadicionar><input type="submit" name="enviar" value="Cadastrar"></botaoadicionar>
<capa><img id="uploadPreview" width="152px" height="214px" /> </capa>
<campopedido><strong>Titulo:</strong> <input type="text" name="titulo" id="titulo" size="50"></campopedido>
<campopedido><strong>Titulo Original:</strong> <input type="text" name="original" id="original" size="40"></campopedido>
<campopedido><strong>Lançamento:</strong> <input type="text" name="lancamento" id="lancamento" size="40"></textarea></campopedido>
<campopedido><strong>Genero:</strong> <input type="text" name="genero" id="genero" size="40"></campopedido>
<campopedido><strong>Categoria:</strong> 
<select name="cat_lancamentos" size="1" id="cat_lancamentos">
<option value="">Selecionar</option>
<?php
$sql = "SELECT * FROM cat_lancamentos";
$resultado = mysql_query($sql) or die('Erro ao selecionar a categoria: ' .mysql_error());

while($linhas = mysql_fetch_array($resultado))
{
    $selected = ($linhas['nome'] == $_POST['cat_lancamentos'])?'selected':'';
?>
    <option value="<?php echo $linhas['nome'];  ?>" <?php echo $selected; ?>>
        <?php echo $linhas['nome']; ?>
    </option>
<?php 
}
?>
</select>
</campopedido>
<campopedido><strong>Dirigido por:</strong> <input type="text" name="diretor" id="diretor" size="40"></campopedido>
<campopedido><strong>Selecionar capa:</strong> <input id="uploadImage" type="file" name="capa" onchange="PreviewImage();" /></campopedido>

<sinopse>
<strong>Sinopse</strong><br />
<textarea name="sinopse" id="sinopse" size="85" cols="40" rows="5" style="width:620px; height:80px; margin-top:10px;"></textarea>
</sinopse>
</pedido>

<titulo> Midia</titulo>
<pedido>
<codigo>
<p>Codigo de adicição de midia</p>
<textarea name="video" id="video" size="85" cols="40" rows="5" style="width:600px; height:120px; margin-top:-20px;margin-bottom:10px;">

</textarea>

</codigo>
</pedido>
</form>

Minhas tabelas do MySQL
CREATE TABLE `cat_lancamentos` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `nome` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE `lancamentos` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `id_cat` bigint(20) NOT NULL,
  `titulo` varchar(255) NOT NULL,
  `original` varchar(255) NOT NULL,
  `capa` varchar(100) NOT NULL,
  `diretor` varchar(50) NOT NULL,
  `lancamento` varchar(50) NOT NULL,
  `genero` varchar(255) NOT NULL,
  `midia` varchar(255) NOT NULL,
  `temporada` varchar(50) NOT NULL,
  `episodios` varchar(20) NOT NULL,
  `sinopse` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM CHARSET=utf8 AUTO_INCREMENT=1 ;


A: Olha na sua estruta de tabela onde esta:
`id_cat` bigint(20) NOT NULL, // aqui você diz que não pode ser null

Olha seu php onde ten o insert:
$sql = mysql_query("INSERT INTO lancamentos (id, id_cat, titulo, original, capa, diretor, lancamento, genero, midia, temporada, episodios, sinopse)  VALUES('', '', '$titulo', '$original', '$capa', '$diretor', '$lancamento', '$genero', '$midia', '', '', '$sinopse')


Você esta passando null no id_cat

Outra coisa, você fez a estrutura para uma FOREIGN KEY, mas não relacionou as tabelas, ou seja essa FK (id_cat) não esta garantindo a integridade dos dados, teria que fazer o relacionamento assim:
ALTER TABLE `lancamentos` 
ADD CONSTRAINT `fk_lancamentos`
FOREIGN KEY (`id_cat`)
REFERENCES `cat_lancamentos` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

EDIT:
Para que o id_cat seja cadastrado corretamente, deve serguir essa lógica:


*

*Ter no mínimo um registro no cat_lancamentos

*na Tela o usuário irá escolher esse lançamento, então o id dele deverá ser guardado para o próximo passo

*Registrar na tabela lancamentos o id do cat_lancamentos no id_cat e os seus demais atributos


A: Não entendi muito bem o que estava querendo, pelo que entendi, primeiro você deve fazer o insert e depois o select, e o select junto que você queria seria isto?  
select l.id, ct_l.nome, l.titulo, l.original, l.capa, l.diretor, l.lancamento, l.genero, l.midia, l.temporada, l.episodios, l.sinopse from lancamentos l
inner join cat_lancamentos ct_l on ct_l.id = l.id_cat;

