F3F0 0 Denunciar post Postado Maio 11, 2009 Olá Pessoal! Estou começando com PHP agora e ja me meti num fria! Escolhi a linguagem pra fazer meu TCC (Trabalho de Conclusão de Curso) sem saber praticamente nada! Estou tentando aprender na vontade mesmo! Então se eu falar bobagem, por favor, desculpem-me mas é erro de iniciante http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif Vamos a minha duvida: Utilizei uma opção de MenuList com os dados de uma tabela! Ao selecionar e clicar em Salvar, a opção selecionada vai para a variavel "$Situacao". Preciso pegar o valor "Id_situacao" da tabela "Situacao", usando como parametro o valor que passei na var "$Situacao". Usei o seguinte código para tentar me retornar o valor de "Id_situacao" para armazenar na tabela que eu desejo. salvar.php $Situacao = $_POST["Situacao"]; $Id_situacao = mysql_query("SELECT Id_situacao FROM Situacao WHERE Situacao ='$Situacao'"); Eu printei os valores para ver se estão retornando alguma coisa! O valor da var "$Situacao" está printando a opção selecionada, o que quer dizer que está vindo corretamente da página anterior. Mas já "$Id_situacao" não! Acredito que seja alguma coisa referente a instrução SQL que estou passando! Dados: Tabela: Situacao * Id_situacao: 1 -> Situacao: Ativo; * Id_situacao: 2 -> Situacao: Inativo; No MenuList, aparecem as opções Ativo e Inativo; Eu preciso pegar o Id correspondente na tabela. echo "$Situacao<br/>"; echo "$Id_situacao<br/>"; Desde já, o meu muito obrigado! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Maio 11, 2009 faltou você fazer um fetch_assoc, para te trazer os dados retornados do SQL num array. http://br2.php.net/mysql_fetch_assoc Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 11, 2009 Vou fazer uma sugestão. No select (Menu list) você faz assim: <option value="<?php echo $id ?>"><?php echo $nome ?></option> Onde $id = id da situação $nome = nome da situação (ativo e inativo). Daí o valor que vai para a outra página já é o id referente a situação escolhida. Espero ter ajudado Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Maio 11, 2009 Acho que o problema tá em ele ter criado uma coluna com o mesmo nome da tabela... E aí o MySQL tá se perdendo... Tente mudar o nome da coluna e usar sempre ` ao redor de nome de colunas e tabelas. ;) $sql = "SELECT `Id_situacao` FROM `Situacao` WHERE `Nome_situacao` = '" . $Situacao . "'" mysql_query($sql); Compartilhar este post Link para o post Compartilhar em outros sites
F3F0 0 Denunciar post Postado Maio 12, 2009 ~TiuTalk~ Bom, essa eu já fiz! Quando eu postei la em cima, me perdi pacas! Fui lá e editei o nome da Coluna para Nome_situacao. Quanto a colocar o ' tb ja fiz! O erro continua! William Bruno Não entendi muito no link que você me passou! Na verdade, nada! matias_rezende Lendo parece ser fácil, mas como disse, sou iniciante nisso! Já foi um parto conseguir fazer aparecer na lista o que estava na tabela! Compartilhar este post Link para o post Compartilhar em outros sites
fetish 3 Denunciar post Postado Maio 12, 2009 Simplesmente utilize: <?php echo $Situacao; while ($mostrar = mysql_fetch_array ($Id_Situacao)) echo '<br>'.$mostrar['Id_Situacao']; // Exibe a ID da situação ?> Para saber mais sobre o mysql_fetch_array, entre: http://www.php.net/manual/pt_BR/function.m...fetch-array.php Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 12, 2009 Mas o que você quer é mais ou menos isto? Posta o teu código (o que exibe na lista). Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
F3F0 0 Denunciar post Postado Maio 12, 2009 Bom, como falei, iniciante ta! E como não sabia direito como funcionar, peguei um código pronto e adpatei. Essa parte esta funcionando, inclusive passa o parametro Nome_situação adiante Cadastrar.php <?php @ini_set('display_errors', '1'); error_reporting(E_ALL); Include "../../includes/Conecta_mysql.inc"; $sql="SELECT Nome_situacao FROM Situacao"; $result = mysql_query($sql,$conexao) or die(mysql_error()); $contar = mysql_num_rows($result); $i = 0; ?> //********Código HTML com os campos para inserção*************************** <tr><td>Situação</td><td> <select name="Nome_situacao" type="text" id="Nome_situacao"> <?php while ($i < $contar) { $ver = mysql_result($result,$i,"Nome_situacao"); echo "<option value='$ver'>$ver</option>\n"; $i++; } ?> </select> </td></tr> Salvar.php <?php @ini_set('display_errors', '1'); error_reporting(E_ALL); Include "../../includes/Conecta_mysql.inc"; $Nome_cliente = $_POST["Nome_cliente"]; $Dt_nasc = $_POST["Dt_nasc"]; $Idade = $_POST["Idade"]; $CPF = $_POST["CPF"]; $RG = $_POST["RG"]; $Org_exp_rg = $_POST["Org_exp_rg"]; $Dt_exp_rg = $_POST["Dt_exp_rg"]; $Id_sexo = $_POST["Id_sexo"]; $Nome_situacao = $_POST["Nome_situacao"]; $Id_situacao = mysql_query("SELECT 'Id_situacao' FROM 'Situacao' WHERE 'Nome_situacao' ='$Nome_situacao'"); mysql_query("INSERT INTO Cliente ( Id_cliente , Nome_cliente , Dt_nasc, Idade, CPF, RG, Org_exp_rg, Dt_exp_rg, Id_sexo, Id_situacao) VALUES ( NULL , '$Nome_cliente', '$Dt_nasc', '$Idade', '$CPF', '$RG', '$Org_exp_rg', '$Dt_exp_rg', '$Id_sexo', '$Id_situacao')"); mysql_close(); echo "Salvo com sucesso<br />";// Essa parte exibe echo "$Nome_situacao<br/>";// Essa parte exibe echo "$Id_situacao<br/>";// Essa parte ele não exibe ?> <a href="index.html">Voltar</a> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Maio 12, 2009 Esse trecho: $Id_situacao = mysql_query("SELECT 'Id_situacao' FROM 'Situacao' WHERE 'Nome_situacao' ='$Nome_situacao'"); você precisa pegar os dados..na variável $Id_situacao, por enqnto, só tem o resource da consulta... e não os dados.. $q = mysql_query("SELECT 'Id_situacao' FROM 'Situacao' WHERE 'Nome_situacao' ='$Nome_situacao'")or die( mysql_error() ); $dados = mysql_fetch_assoc( $q ); echo $dados['Id_situacao'];entendeu ? após o fetch_assoc, você terá um array de chaves associativas, com os valores retornados pela consulta.. Qual é a estrutura da sua tabela ? Vai no seu banco de dados, e exporta essa tabela para vermos.. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 12, 2009 Outra coisa, que eu acho que também vai ajudar. Pega mais um campo no Mysql da primeira página. Assim ó: $sql="SELECT Nome_situacao, Id_situacao FROM Situacao"; $result = mysql_query($sql,$conexao) or die(mysql_error()); //$contar = mysql_num_rows($result); - comentei estas linhas porque, no seu exemplo elas são desnecessárias. //$i = 0; ?> <?php while ($ver = mysql_fetch_array($result) { echo '<option name="Id_situacao" value="'.$ver['Id_situacao'].'">'.$ver['Nome_situacao'].'</option>/n'; } ?> Aí na outra pagina você substitui esta linha. $Id_situacao = $_POST['Id_situacao']; Deve funcionar. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
F3F0 0 Denunciar post Postado Maio 15, 2009 Aew Pessoal, obrigado pela ajuda ai que vocês estão me dando! Vou testar essas dicas ai e ver se funcionam! Desculpa o atraso, é que fiquei dois dias sem NET e o trampo e a faculdade pesou esta semana! Assim que testar, posto aqui o resultado! Mais uma vez o meu Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
F3F0 0 Denunciar post Postado Maio 22, 2009 Matias: Depois que coloquei seu código, a página do cadastro nem carrega mais! Coloquei exatamente igual como você pediu. Comentei aquelas linhas, e acrescentei o código. <select name="Id_situacao_cliente" type="text" id="Id_situacao_cliente"> // Está certo isso? Antes era Nome_situacao_cliente <?php while ($ver = mysql_fetch_array($result) { echo '<option name="Id_situacao_cliente" value="'.$ver['Id_situacao_cliente'].'">'.$ver['Nome_situacao_cliente'].'</option>/n'; } ?> </select>E no Salvar.PHP coloquei: $Id_situacao_cliente = $_POST["Id_situacao_cliente"]; mysql_query("INSERT INTO Cliente ( Id_cliente , Nome_cliente , Dt_nasc, Idade, CPF, RG, Org_exp_rg, Dt_exp_rg, Id_sexo, Id_situacao_cliente) VALUES ( NULL , '$Nome_cliente', '$Dt_nasc', '$Idade', '$CPF', '$RG', '$Org_exp_rg', '$Dt_exp_rg', '$Id_sexo', '$Id_situacao_cliente')"); mysql_close(); William: Bom a estrutura da tabela é essa: CREATE TABLE `dbconvenio`.`situacao_cliente` ( `Id_situacao_cliente` int(10) unsigned NOT NULL auto_increment, `Nome_situacao_cliente` varchar(20) NOT NULL, PRIMARY KEY (`Id_situacao_cliente`) )Apenas alterei os nomes dos campos pra conseguir me entender melhor! Antes tava muito confuso!Ainda não entendi como fazer para que eu consiga obter o resultado da linha. Entendi que com o mysql_fetch_assoc, eu terei os resultados em um array. Mas como eu uso isso? Poxa é apenas um valor só que eu quero. Precisava ser tão complicado assim? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif o/ Compartilhar este post Link para o post Compartilhar em outros sites
Will Fernando 2 Denunciar post Postado Maio 22, 2009 qual o erro que aparece ? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 22, 2009 Posta o cadastrar.php inteiro... Acho que eu te passei alguma coisa errada... Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
F3F0 0 Denunciar post Postado Maio 22, 2009 Cadastrar2.php <?php @ini_set('display_errors', '1'); error_reporting(E_ALL); Include "../../includes/Conecta_mysql.inc"; $sql="SELECT Nome_situacao_cliente, Id_situacao_cliente FROM Situacao_cliente"; $result = mysql_query($sql,$conexao) or die(mysql_error()); // $contar = mysql_num_rows($result); // $i = 0; ?> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Cadastro de Clientes</title> </head> <body> <form id="Cadastro.cliente" name="Cadastro.cliente" method="post" action="salvar2.php"> <table width="400" border="1" align="center"> <tr> <td width="200">Nome do Cliente</td> <td width="200"><input name="Nome_cliente" type="text" size="30" id="Nome_cliente" /></td> </tr> <tr> <td>Data de Nascimento</td> <td><input name="Dt_nasc" type="DATE" size="30" id="Dt_nasc" /></td> </tr> <tr> <td>Idade</td> <td><input name="Idade" type="integer" size="30" id="Idade" /></td> </tr> <tr> <td>CPF</td> <td><input name="CPF" type="integer" size="30" id="CPF" /></td> </tr> <tr> <td>RG</td> <td><input name="RG" type="integer" size="30" id="RG" /></td> </tr> <tr> <td>Orgao Expedidor do RG</td> <td><input name="Org_exp_rg" type="text" size="30" id="Org_exp_rg" /></td> </tr> <tr> <td>Data de Expedição do RG</td> <td><input name="Dt_exp_rg" type="DATE" size="30" id="Dt_exp_rg" /></td> </tr> <tr> <td>Id_sexo</td> <td><input name="Id_sexo" type="integer" size="30" id="Id_sexo" /></td> </tr> <tr><td>Situação do Cliente</td><td> <select name="Id_situacao_cliente" type="integer" id="Id_situacao_cliente"> <?php /* while ($i < $contar) { $ver = mysql_result($result,$i,"Nome_situacao_cliente"); echo "<option value='$ver'>$ver</option>\n"; $i++; } */ while ($ver = mysql_fetch_array($result) { echo '<option name="Id_situacao_cliente" value="'.$ver['Id_situacao_cliente'].'">'.$ver['Nome_situacao_cliente'].'</option>/n'; } ?> </select> </td></tr> </table> <p align="center"> <input type="submit" name="Submit" value="Gravar" style="cursor:pointer"/> </p> </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 22, 2009 Cuidado com maiúsculas e minúsculas... o PHP é case sensitive. $sql="SELECT Nome_situacao_cliente, Id_situacao_cliente FROM Situacao_cliente";// o nome da tabela não é situacao_cliente??? Outra coisa... Aqui você tira o name echo '<option value="'.$ver['Id_situacao_cliente'].'">'.$ver['Nome_situacao_cliente'].'</option>/n';//Tira o name Testa e veja se funciona. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 22, 2009 Acabei de responder e vi que estava errado... Não acho que seja isto... Copia o SQL e cola no PHPMyadmin e veja se ele retorna alguma coisa... Não sei mais o que pode ser... Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
F3F0 0 Denunciar post Postado Maio 22, 2009 Acabei de responder e vi que estava errado... Não acho que seja isto... Copia o SQL e cola no PHPMyadmin e veja se ele retorna alguma coisa... Não sei mais o que pode ser... Carlos Eduardo Brother, o sql retorna as linhas que estao na tabela. Com os dados preenchidos. Um detalhe, se eu salvar como cadastro.php ele não carrega a página. Se eu salavar como cadastro.htm ele carrega a página e aparece o seguinte: (No ópera. Já no FF e IE, o campo aparece vazio. Compartilhar este post Link para o post Compartilhar em outros sites
F3F0 0 Denunciar post Postado Maio 22, 2009 PS, desculpem pelo Flood, mas..... Funcionou, funcionou, funcionou, funcionou, funcionou, funcionou, funcionou!!! Aqui, Mathias, faltou fechar um ) no linha do While: Assim você havia digitado while ($ver = mysql_fetch_array($result)ai, fechei com ) n final, pq tava faltando um. while ($ver = mysql_fetch_array($result))Ai, carregou a página e tá salvando tudo certinho!!Valeu galera! Vcs nao sabem da minha alegria no momento! Tirei o da de folga pra agilizar as coisas aqui e na manha inteira naum tinha funcionado nada! Mas agora deu certo! Por mim, podem fechar o tópico já! Muito obrigado a todos que ajudaram aqui. Principalmente mathias_rezende, que assina Carlos Eduardo e William. E aos outros tb pela ajuda!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 22, 2009 Beleza... Que bom que deu certo... Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites