biza 1 Denunciar post Postado Julho 20, 2010 preciso de um form fazer um INSERT em duas tabelas e relacionar as duas pelo campo id . Será que me pode dar um exemplo é que estou fritando esse ovo ja algum tempo Compartilhar este post Link para o post Compartilhar em outros sites
thiago 0 Denunciar post Postado Julho 20, 2010 Olha, você quer algo que pode ser feito de varias maneiras, uma delas é: 1-Crie uma terceira tabela com três campos, id_tabela, id_tabela1, id_tabela2. 2-Crie o form, crie a página que processa-rá o form, na página de processamento, crie dois insert, assim: $a = valor do form $b = insert tabela1 valor $a, $c = insert tabela2 valor $a, Á lógica é éssa... Quando for consultar peça para trazer os registros cujo id_tabela de ambas forem iguais, use a Cláusula WHERE. Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Y. 0 Denunciar post Postado Julho 20, 2010 Um exemplo... <form method="post" action="/seu_action.php"> <input type="text" name="cliente_nome" /> <input type="text" name="venda_data" /> <input type="submit" name="cmd" value="Ok" /> </form> Agora la no seu seu_action.php... Em exemplo usando PDO (recomendo) //conectar no mysql $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass); //Preparar insert $stmt = $pdo->prepare("INSERT INTO clientes(nome) VALUES (:nome)"); $stmt->bindParam(':nome', $_POST['cliente_nome']); //Executar insert $stmt->execute(); //Pegar o id que foi inserido (já que o campo id é autoincrement e nós não passamos nada) $clienteId = $pdo->lastInsertId(); //Preparar insert da outra query $stmt = $pdo->prepare("INSERT INTO venda(data, cliente_id) VALUES (:data,:cliente_id)"); $stmt->bindParam(':data', $_POST['venda_data']); $stmt->bindParam(':cliente_id', $clienteId); //Executar insert $stmt->execute(); Agora se você acha que tem sorte, e quiser fazer usando mysql_query, mysql_connect e etc... o código equivalente ao $pdo->lastInsertId() é o mysql_insert_id. Isso se você estiver usando o MySQL. Com o PDO você pode usar outros bancos... Compartilhar este post Link para o post Compartilhar em outros sites
biza 1 Denunciar post Postado Julho 20, 2010 o problema é que tenho um form com campos combobox e text file , nesse quero fazer um primeiro insert , o segundo é composto com checkbox, e ai eu quero que exista relacionamento da primeira tabela que alberga os dados id, nome, morada , cidade, pais, id_estado; com a segunda tabela que alberga os dados , id_check, solteiro, mas_fem, data, etc... Quando meter os dados da primeira tabela queria que a outra fica-se relacionada com a primeira. De modo a eu saber que aqueles dados lhe pertencem Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Y. 0 Denunciar post Postado Julho 20, 2010 não entendi... tem como mostrar os forms? Compartilhar este post Link para o post Compartilhar em outros sites
biza 1 Denunciar post Postado Julho 20, 2010 AI VAi... <form method="post" enctype="multipart/form-data" name="" action=""> <input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> <table width="915" border="0" cellspacing="6" cellpadding="0"> <tr> <td width="102">Categorias:</td> <td width="86"> <? $result = mysql_query("SELECT t_id, cat FROM categorias"); echo'<select name="cat"> <option value="0" size="35">Seleccione a Categoria</option>'; while( $row = mysql_fetch_array($result)){ echo'<option value="'.$row[0].'" size="35">'.$row[1].'</option> '; } mysql_free_result( $result ); echo'</select>'; ?> </td> <td width="99">Marca:</td> <td width="112"> <? $result = mysql_query("SELECT m_id, marca FROM marcas"); echo'<select name="marc"> <option value="0" size="35">Seleccione a Marca</option>'; while( $row = mysql_fetch_array($result)){ echo'<option value="'.$row[0].'" size="35">'.$row[1].'</option> '; } mysql_free_result( $result ); echo'</select>'; ?> </td> <td width="117">Modelo:</td> <td width="112"><input name="modelo" type="text" class="area" id="modelo" value="" size="10" /></td> <td width="116">Preco:</td> <td width="117"><input name="preco" type="text" class="area" id="preco" value="" size="10" /></td> </tr> <tr> <td>Quilometros:</td> <td><input name="quilometros" type="text" class="area" id="quilometros" value="" size="10" /></td> <td>Combustivel:</td> <td> <? $result = mysql_query("SELECT c_id, combustivel FROM combustivel"); echo'<select name="comb"> <option value="0" size="35">Seleccione o Combustível</option>'; while( $row = mysql_fetch_array($result)){ echo'<option value="'.$row[0].'" size="35">'.$row[1].'</option> '; } mysql_free_result( $result ); echo'</select>'; ?></td> <td>Velocidades</td> <td><input name="velocidades" type="text" class="area" id="velocidades" value="" size="10" /></td> <td>Cilindrada:</td> <td><input name="cilindrada" type="text" class="area" id="cilindrada" value="" size="10" /></td> </tr> <tr> <td>Cor Carroçaria:</td> <td><input name="cor_car" type="text" class="area" id="cor_car" value="" size="10" /></td> <td>Cor de interiores:</td> <td><input name="cor_int" type="text" class="area" id="cor_int" value="" size="10" /></td> </tr> <tr> <td>Ano:</td> <td><input name="ano" type="text" class="area" id="ano" value="" size="10" /></td> <td>Portas:</td> <td><input name="portas" type="text" class="area" id="portas" value="" size="10" /></td> <td>Potencia:</td> <td><input name="potencia" type="text" class="area" id="potencia" value="" size="10" /></td> </tr> <tr> <td>Imagem 1:</td> <td><input name="foto1" type="file" class="area" id="foto1" value="" size="10" /></td> <td>Imagem 2:</td> <td><input name="foto2" type="file" class="area" id="foto2" value="" size="10" /></td> <td>Imagem 3:</td> <td><input name="foto3" type="file" class="area" id="foto3" value="" size="10" /></td> </tr> <tr> <td>Imagem 4:</td> <td><input name="foto4" type="file" class="area" id="foto4" value="" size="10" /></td> <td>Imagem 5:</td> <td><input name="foto5" type="file" class="area" id="foto5" value="" size="10" /></td> <td>Imagem 6:</td> <td><input name="foto6" type="file" class="area" id="foto6" value="" size="10" /></td> </tr> <tr> <td>Imagem 7:</td> <td><input name="foto7" type="file" class="area" id="foto7" value="" size="10" /></td> <td>Imagem 8:</td> <td><input name="foto8" type="file" class="area" id="foto8" value="" size="10" /></td> <td> Imagem 9:</td> <td><input name="foto9" type="file" class="area" id="foto9" value="" size="10" /></td> </tr> <tr> <td colspan="8"><label>Observações</label> <textarea class="text-input textarea wysiwyg" id="observacoes" name="observacoes" cols="79" rows="15"></textarea></td> </tr> <tr> <td colspan="8"><table width="100%" border="0" cellspacing="6" cellpadding="0"> <tr> <td colspan="8" class="font_verde">Equipamento</td> </tr> <tr> <td width="3%"> </td> <td width="23%" class="items">Som Multimédia e Navegação </td> <td width="3%"> </td> <td width="20%" class="items">Segurança e Performance</td> <td width="3%"> </td> <td width="21%" class="items">Interior e Conforto</td> <td width="1%"> </td> <td class="items">Exterior e Ambiente</td> </tr> <tr> <td><input type="checkbox" name="checkbox" id="checkbox" /></td> <td> </td> <td><input type="checkbox" name="checkbox5" id="checkbox5" /></td> <td> </td> <td><input type="checkbox" name="checkbox9" id="checkbox9" /></td> <td> </td> <td><input type="checkbox" name="checkbox13" id="checkbox13" /></td> <td> </td> </tr> <tr> <td><input type="checkbox" name="checkbox2" id="checkbox2" /></td> <td> </td> <td><input type="checkbox" name="checkbox6" id="checkbox6" /></td> <td> </td> <td><input type="checkbox" name="checkbox10" id="checkbox10" /></td> <td> </td> <td><input type="checkbox" name="checkbox14" id="checkbox14" /></td> <td> </td> </tr> <tr> <td><input type="checkbox" name="checkbox3" id="checkbox3" /></td> <td> </td> <td><input type="checkbox" name="checkbox7" id="checkbox7" /></td> <td> </td> <td><input type="checkbox" name="checkbox11" id="checkbox11" /></td> <td> </td> <td><input type="checkbox" name="checkbox15" id="checkbox15" /></td> <td> </td> </tr> <tr> <td><input type="checkbox" name="checkbox4" id="checkbox4" /></td> <td> </td> <td><input type="checkbox" name="checkbox8" id="checkbox8" /></td> <td> </td> <td><input type="checkbox" name="checkbox12" id="checkbox12" /></td> <td> </td> <td><input type="checkbox" name="checkbox16" id="checkbox16" /></td> <td> </td> </tr> </table></td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td colspan="2"><input name="submit" type="submit" class="button" id="submit" value="Guardar Veiculo" /></td> </tr> </table> </form> Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Y. 0 Denunciar post Postado Julho 21, 2010 Bom... me parece simples então... você deve simplesmente ter colunas na tabela de carros que guardem o id das outras tabelas que você quer relacionar. percebi alguns campo na sua tabela como: # CARROS # ================== modelo preco quilometros velocidades cilindradas etc... tudo que você tem que fazer é adicionar as colunas com os id relacionados... # CARROS # ================== categoria_id -> se relaciona com a tabela categorias marca_id -> se relaciona com a tabela marcas modelo preco quilometros velocidades cilindradas combustivel_id -> se relaciona com a tabela combustiveis ai nada hora de buscar os dados: SELECT categorias.descricao AS categoria, marcas.descricao AS marca, carros.modelo, carros.preco FROM carros INNER JOIN categorias ON categorias.id = carros.categoria_id INNER JOIN marcas ON marcas.id = carros.marca_id Compartilhar este post Link para o post Compartilhar em outros sites
biza 1 Denunciar post Postado Julho 21, 2010 meu caro essa parte esta feita a dificuldade estão naquelas checkbox no fim do form, ao fazer o envio eu queria enviar os campos que ficam acima da text field para uma tabela , e enviar a checkbox para outra tabela. Tenho 4 tabelas , (categorias, marcas, veículos, combustível), quero criar mais uma que é para inserir o equipamento dos carros. A tabela veículos é a que se relaciona com as outras , na hora de fazer o insert, através das combobox passo os valores das outras tabelas para a relação com a tabela principal, mas gostava de ao fazer o insert as checbox que estivessem com visto, ele submeter , esses campos para outra tabela , mas relacionando a inserção dos dados daquele veiculo, daquela marca, com aquele equipamento e categoria. Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Y. 0 Denunciar post Postado Julho 21, 2010 Entendi... vanos la... <td><input type="checkbox" name="equipamentos[]" id="rodas" value="1" /><label for="rodas">Rodas</label></td> <td><input type="checkbox" name="equipamentos[]" id="vidros" value="2" /><label for="vidros">Vidros</label></td> <td><input type="checkbox" name="equipamentos[]" id="travas" value="3" /><label for="travas">Travas</label></td> <td><input type="checkbox" name="equipamentos[]" id="direcao" value="4" /><label for="direcao">Direção</label></td> se eu marcar Vidros e Direção, então o post no seu php vai chegar mais ou menos assim: Array ( [equipamentos] => Array ( [0] => 2 [1] => 4 ) ) então você criar mais duas tabelas # EQUIPAMENTOS # ================== equipamento_id descricao blablabla # CARRO_EQUIPAMENTOS # ====================== carro_id -> se relaciona com a tabela carros equipamento_id -> se relaciona com a tabela equipamentos se tiver dúvidas de como inserir, poste aqui... ou procure sobre relacionamento muitos pra muitos, que é o que eu acho que você está tentando fazer. Compartilhar este post Link para o post Compartilhar em outros sites
biza 1 Denunciar post Postado Julho 21, 2010 peço desculpa mas é mesmo com essa duvida que estou. Não consigo perceber como relaciono uma tabela com a outra aquando da inserção Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Y. 0 Denunciar post Postado Julho 21, 2010 primeiro você insere o carro normalmente... INSERT INTO carros (campo1, campo2, campo3) VALUES ('valor1','valor2','valor3'); Sem se preocupar com os equipamentos... apenas com os dados do carro mesmo, e com os ralacionamentos da marca, categoria, e os relacionamentos 1..n Agora o n..n: pegue o id do carro com $carroId = mysql_insert_id(); e então insira na tabela CARRO_EQUIPAMENTOS todos os equipamentos que vieram marcados no form: foreach($_POST['equipamentos'] as $equipamentoId){ mysql_query("INSERT INTO carro_acessorio (carro_id, acessorio_id) VALUES ($carroID, $acessorioID)") } Só não esquece de tratar os sql injections... Eu recomendo você usar PDO. Se tiver um tempinho ai estude essa classe... não é tão difícil. pesquise no Google e php.net... resumindo... ----------------------- CARROS ----------------------- id | descricao | valor ---|-----------|------- 1 | Fusca | 1.000 2 | Brasília | 1.000 3 | Gol | 1.000 4 | Golf | 1.000 ----------------------- EQUIPAMENTOS ----------------------- id | descrica ---|------------------- 1 | vidro elétrico 2 | travas elétricas 3 | direção hidraulica 4 | bancos de couro -------------------------- CARROS_EQUIPAMENTOS -------------------------- carro_id | equipamento_id ---------|---------------- 3 | 1 # essa linha diz que carro 3 tem equipamento 1.... ou seja, gol tem vidro elétrico 4 | 1 # essa linha diz que carro 4 tem equipamento 1.... ou seja, golf tem vidro elétrico 4 | 2 # essa linha diz que carro 4 tem equipamento 2.... ou seja, golf também tem travas elétricas 4 | 3 # essa linha diz que carro 4 tem equipamento 3.... ou seja, golf também tem direção hidraulica 4 | 4 # essa linha diz que carro 4 tem equipamento 4.... ou seja, golf também tem vidro bancos de couro Compartilhar este post Link para o post Compartilhar em outros sites
biza 1 Denunciar post Postado Agosto 22, 2010 resolvido obrigadão Compartilhar este post Link para o post Compartilhar em outros sites