manolegal 12 Denunciar post Postado Janeiro 7, 2012 Olá amigos do Forum. Tenho um cadastro de veículos. Uso banco de dados Postgre. Tenho 03 tabelas: Tabela "veiculos" - Cadastro do veiculos id_veiculo - chave primaria e autoincremento veiculo - varchar Tabela "veiculos_tipo_combustivel" - Tipos de combustiveis (gasolina, alcool, etc) id_tipo_combustivel - chave primaria e autoincremento tipo_combustivel - varchar Tabela "veiculos_veiculo_combustiveis" - Relaciono Veiculo x Tipos de Combustivel utilizados (Veiculo pode utilizar mais de 01 tipo de combustivel) id_sequencial - chave primaria e autoincremento veiculo_id - chave estrangeira e integer (id do veículo) combustivel_id - chave estrangeira e integer (id do tipo de combustivel) Tenho dúvida quando da alteraçao dos dados de um veículo. Como faço para mostrar os tipos de combustiveis (todos os tipos de combustíveis existentes) e os tipos de combustível do veículo que está sendo alterado virem "checkados". Tendo por exemplo a seguinte situaçao: Tabela "veiculos_tipo_combustivel" (id_tipo_combustivel - tipo_combustivel) 1 - Alcool 2 - Oleo Diesel 3 - Gasolina Tabela "veiculos_veiculo_combustiveis" (id_sequencial - veiculo_id - combustivel_id) 1 - 1 - 1 2 - 1 - 3 Gostaria que no campo "check" do "tipo de combustivel", viessem todos os tipos de combustivel (1 - Alcool, 2 - Oleo Diesel, 3 - Gasolina) e que estivessem "checkados" os tipos 1 - Alcool e 2 - Gasolina". Tenho até o momento somente o seguinte código: <tr> <td><div align="right"><font face="Courier New, Courier">Combustivel:</font></div></td> <td><div align="left"><font color="#FF0000" size="2">* (Multipla Escolha)</font></div></td> <?php $Sql = "SELECT * FROM veiculos_tipo_combustivel ORDER BY tipo_combustivel"; $Resultado = executa($Sql); $colunas = 1; $i = 0; while($linha =pg_fetch_array($Resultado)){ $id_tipo_combustivel = $linha["id_tipo_combustivel"]; $combustivel = $linha["tipo_combustivel"]; ?> <tr><td> </td><td width="54%"><input type="checkbox" name="combustivel_tipo[]" id="combustivel_tipo" value="<?php echo "$id_tipo_combustivel"; ?>"><?php echo "$combustivel"; ?> <?php $i++; if($i == $colunas) echo "<br>"; if($i >= $colunas) $i = 0; } ?> </tr> Neste caso, lista os tipos de combustivel existentes, mas não mostra os tipos de combustivel do veiculo que está sendo alterado. Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Janeiro 7, 2012 falta a consulta do veiculo a ser alterado. ai você verifica se o combustivel do carro é igual ao da tabela de combustivel. tbm coloque checked="checked" no checkbox Compartilhar este post Link para o post Compartilhar em outros sites
Célio A. 4 Denunciar post Postado Janeiro 7, 2012 Amigo porque não cria um arquivo para exibir os veículos contendo um botão para editar e outro para excluir. Assim você esta vendo os dados do registro, não resolve teu problema? Ações | Veiculo | Combustível [Editar] [Excluir] | Fusca | Alcool Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Janeiro 7, 2012 shini Como e onde eu faria/colocaria a consulta do veiculo que esta sendo alterado? Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Janeiro 9, 2012 A consulta do veículo que está sendo alterado eu faço no início do formulário: $id_veiculo = $_GET["id_veiculo"]; // Variavel passada via hidden do formulario anterior $Sql = "SELECT * FROM veiculos, ..... WHERE ..... AND id_veiculo = $id_veiculo"; $Resultado = executa($Sql); while ($linha = pg_fetch_array($Resultado)){ $id_veiculo_bd = $linha["id_veiculo"]; $veiculo = $linha["veiculo"]; Como faria o comparativo para verificar o(s) tipos(s) de combustivel do veiculo e colocá-los como checkado? Compartilhar este post Link para o post Compartilhar em outros sites
Luis Paullo 47 Denunciar post Postado Janeiro 9, 2012 bom pra <options> faço assim <option <?php echo $id_gasolina == $id_carro_combustivel ? 'SELECTED' : '' ?>> pra checkbox acho q quase a msm coisa =X echo 'checked="checked"'..... Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Janeiro 22, 2012 Luis Paullo Obrigado pelo retorno, mas nao tenho ainda idéia de como fazer, ainda mais que o veículo pode ter mais que 01 tipo de combustíivel, e ai preciso salvar os tipos de combustivel em array. A consulta do veículo q está sendo alterado: $Sql = "SELECT * FROM veiculos, veiculos_veiculo_combustiveis, secretarias WHERE veiculos.id_veiculo = veiculos_veiculo_combustiveis.veiculo_id AND veiculos.secretaria_veiculo_id = secretarias.id_secretaria AND id_veiculo = $id_veiculo"; $Resultado = executa($Sql); while ($linha = pg_fetch_array($Resultado)){ $id_veiculo = $linha["id_veiculo"]; $veiculo = $linha["veiculo"]; $combustivel_id_bd[] = $linha["combustivel_id"]; Na espera de auxilio. Valeu. Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Abril 12, 2012 Tentei da seguinte forma mas ainda não está ok: $id_veiculo = $_GET["id_veiculo"]; $Sql = "SELECT * FROM veiculos, secretarias WHERE veiculos.secretaria_veiculo_id = secretarias.id_secretaria AND id_veiculo = $id_veiculo"; $Resultado = executa($Sql); while ($linha = pg_fetch_array($Resultado)){ $id_veiculo = $linha["id_veiculo"]; $veiculo = $linha["veiculo"]; <tr> <td><div align="right"><font face="Courier New, Courier">Combustível:</font></div></td> <td><div align="left"><font color="#FF0000" size="2">* (Múltipla Escolha)</font></div></td> <?php $Sql = "SELECT * FROM veiculos_tipo_combustivel ORDER BY tipo_combustivel"; $Resultado = executa($Sql); $colunas = 1; $i = 0; while($linha =pg_fetch_array($Resultado)){ $id_tipo_combustivel = $linha["id_tipo_combustivel"]; $combustivel = $linha["tipo_combustivel"]; $Sql_2 = "SELECT * FROM veiculos_veiculo_combustiveis WHERE veiculos_veiculo_combustiveis.veiculo_id = $id_veiculo"; $Resultado_2 = executa($Sql_2); while($linha_2 =pg_fetch_array($Resultado_2)){ $combustivel_bd = $linha_2["combustivel_id"]; } ?> <tr><td> </td> <td width="54%"><input type="checkbox" name="combustivel_tipo[]" id="combustivel_tipo" value="<?php echo "$id_tipo_combustivel"; ?>"><?php echo "$combustivel"; ?> <?php $i++; if($i == $colunas) echo "<br>"; if($i >= $colunas) $i = 0; } ?> </tr> Imagino q estou no caminho certo, e a grande dúvida é mostrar o(s) tipo(s) de combustível cadastrado(s) para o veículo que está sendo alterado. Estou há muito tempo tentando resolver este problema. Se alguém puder me ajudar, agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Abril 26, 2012 Alterei um pouco o código, mas ainda estou com dificuldades para comparar os tipos de combustivel existentes com o tipo de combustivel do veiculo que está sendo alterado: $id_veiculo = $_GET["id_veiculo"]; $Sql = "SELECT * FROM veiculos, secretarias WHERE veiculos.secretaria_veiculo_id = secretarias.id_secretaria AND id_veiculo = $id_veiculo"; $Resultado = executa($Sql); while ($linha = pg_fetch_array($Resultado)){ $id_veiculo = $linha["id_veiculo"]; $veiculo = $linha["veiculo"]; <tr> <td><div align="right"><font face="Courier New, Courier">Combustível:</font></div></td> <td><div align="left"><font color="#FF0000" size="2">* (Múltipla Escolha)</font></div></td> <?php $Sql_tipos = "SELECT * FROM veiculos_tipo_combustivel ORDER BY tipo_combustivel"; // Seleciona tipos de combustiveis existentes $Resultado_tipos = executa($Sql_tipos); while($linha_tipos =pg_fetch_array($Resultado_tipos)){ $id_tipo_combustivel2 = $linha_tipos["id_tipo_combustivel"]; $combustivel2 = $linha_tipos["tipo_combustivel"]; $Sql_selecionados = "SELECT * FROM veiculos_veiculo_combustiveis WHERE veiculos_veiculo_combustiveis.veiculo_id = $id_veiculo"; // Seleciona tipos de combustiveis do veiculo que está sendo alterado $Resultado_2 = executa($Sql_selecionados); while($linha_2 =pg_fetch_array($Resultado_2)){ $combustivel_bd2 = $linha_2["combustivel_id"]; } ?> <tr><td> </td> <td width="54%"><input type="checkbox" name="combustivel_tipo2[]" id="combustivel_tipo2" value="<?php echo "$id_tipo_combustivel2"; ?>"><?php echo "$combustivel2"; ?> <?php } ?> </tr> Espero que alguém possa me ajudar, é muito importante para mim. Compartilhar este post Link para o post Compartilhar em outros sites
Hiago Drigo 5 Denunciar post Postado Abril 27, 2012 Poderia mandar a estrutura do seu banco(campos). E pra que 3 tabelas, me explique melhor sobre qual a função de cada uma delas? Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Abril 27, 2012 Opa Hiago, obrigado pela força. Uso banco de dados Postgre. Tenho 03 tabelas: Tabela "veiculos" - Cadastro dos veiculos id_veiculo - chave primaria e autoincremento veiculo - varchar Tabela "veiculos_tipo_combustivel" - Tipos de combustiveis utilizados nos veículos (gasolina, alcool, etc) id_tipo_combustivel - chave primaria e autoincremento tipo_combustivel - varchar Tabela "veiculos_veiculo_combustiveis" - Relaciono Veiculo x Tipos de Combustivel utilizados (Veiculo pode utilizar mais de 01 tipo de combustivel) id_sequencial - chave primaria e autoincremento veiculo_id - chave estrangeira e integer (id do veículo) combustivel_id - chave estrangeira e integer (id do tipo de combustivel) Tenho então a tabela onde cadastro os veículos, outra tabela que cadastro os tipos de combustíveis utilizados pelos veículos e uma terceira tabela onde relaciono veículos x tipo_combustível. A minha grande dificuldade é na hora de editar, mostrar os tipos_combustível que estão cadastrados para o veículo que está sendo alterado. Compartilhar este post Link para o post Compartilhar em outros sites
echo "Patrick" 0 Denunciar post Postado Abril 27, 2012 deixa tentar entender, você quer por 1 veiculo em 1 tabela e em outra colocar o id do veiculo e os combustiveis compativel exemplo: id_sequencial =1 veiculo_id = 1 combustivel_id = 1 id_sequencial =1 veiculo_id = 1 combustivel_id = 2 e na hora do formulario, exibir os combustiveis que tem no carro de id 1 certo? Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Abril 27, 2012 Exatamente isso. O problema está só na hora de mostrar os tipos de combustível compatíveis com o veículo (mostrar check marcado). Compartilhar este post Link para o post Compartilhar em outros sites
echo "Patrick" 0 Denunciar post Postado Abril 27, 2012 voce quer que assim que se clica em modificar informações do veiculo, ele vai no banco de dados reconheça o combustivel que é compativel com o carro e mostre em botton com o check marcado o combustivel que o carro aceita? Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Abril 27, 2012 Exato. No formulário de edição do veículo mostrar selecionados os tipos de compativeis que estão cadastrados para o veículo em questão. No código a seguir listo os tipos de combustíveis existentes na tabela de tipos de combustíveis: $Sql_tipos = "SELECT * FROM veiculos_tipo_combustivel ORDER BY tipo_combustivel"; // Seleciona tipos de combustiveis existentes $Resultado_tipos = executa($Sql_tipos); while($linha_tipos =pg_fetch_array($Resultado_tipos)){ $id_tipo_combustivel2 = $linha_tipos["id_tipo_combustivel"]; $combustivel2 = $linha_tipos["tipo_combustivel"]; E neste código mostro os tipos de combustíveis cadastrados para o veículo que está sendo alterado $Sql_selecionados = "SELECT * FROM veiculos_veiculo_combustiveis WHERE veiculos_veiculo_combustiveis.veiculo_id = $id_veiculo"; // Seleciona tipos de combustiveis do veiculo que está sendo alterado $Resultado_2 = executa($Sql_selecionados); while($linha_2 =pg_fetch_array($Resultado_2)){ $combustivel_bd2 = $linha_2["combustivel_id"]; } A dificuldade é mostrar os tipos de combustível cadastrados para o veículo (check marcado). Compartilhar este post Link para o post Compartilhar em outros sites
echo "Patrick" 0 Denunciar post Postado Abril 27, 2012 primeiramente você tem que abrir multiplas tabelas, no caso a tabela de veiculos de tipos de combustiveis e dos combustiveis do carro e ligando elas com ON tipo veiculos.id = combustiveisdocarro.id Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Abril 27, 2012 Já montei as consultas. Elas estão no post anterior. Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Junho 5, 2012 Problema resolvido: <tr> <td><div align="right"><font face="Courier New, Courier">Combustível:</font></div></td> <td><div align="left"><font color="#FF0000" size="2">* (Múltipla Escolha)</font></div></td> <?php $i=0; $Sql = "SELECT * FROM veiculos_tipo_combustivel ORDER BY tipo_combustivel"; $Resultado = executa($Sql); while($linha =pg_fetch_assoc($Resultado)){ $id_tipo_combustivel_bd = $linha["id_tipo_combustivel"]; $combustivel_bd = $linha["tipo_combustivel"]; ?> <tr><td> </td><td width="54%"> <?php $ok = 0; for($i=0; $i<count($combustivel_tipo); $i++) { if ($combustivel_tipo[$i] == $id_tipo_combustivel_bd) { $ok=1; echo '<input type="checkbox" name="combustivel_tipo[]" id="combustivel_tipo" checked value="'.$id_tipo_combustivel_bd.'">' . $combustivel_bd . '<br />'; } } if ($ok == 0) { echo '<input type="checkbox" name="combustivel_tipo[]" id="combustivel_tipo" value="'.$id_tipo_combustivel_bd.'">' . $combustivel_bd . '<br />'; } $i++; } ?> </td> </tr> Obrigado a todos. Compartilhar este post Link para o post Compartilhar em outros sites