• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Broken

duvida simples

8 mensagens neste tópico

boas,

tenho um uma base de dados com registos e quando pretendo alterar os campos do registo e chamo o formulario deste que permite fazer esta alteração ele vem com os campos das listbox nao veem preenchidos e queria saber como recupero esses valores visto que são campos de diferentes dos outros.

abraços, broken

:eek: :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso está um pouco confuso, mas pelo que percebi tens um formulário de editar os registos da Base de Dados, correcto?

Deves ter INPUTS, TEXTAREAS e SELECTS no formulário e apenas não sabes como seleccionar o valor da SELECT, é isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penço que ele quer o que eu queria a uns tempos, mas como não percebi muito bem e não tive tempo para exprimentar não vou responder :P. Ele quer que nos formulários apareça dentro do text, textareas, radio etc... o que esta na base de dados, e quando altera os dados eles sao alterados para a base de dados :). Ou seja é para aparecer os dados da base de dados dentro dos formulários :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é simples, se ainda tiveres interessado posso explicar como fazer....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é simples, se ainda tiveres interessado posso explicar como fazer....

Explica na mesma. Pode haver mais interessados.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em primeiro lugar tens de apresentar uma listagem ao utilizador para que ele escolha o registo da BD que quer modificar;

Em segundo lugar, depois de escolhido o ID do registo a editar, tens de sacar todos os campos desse registo, aconselho usar o mysql_fetch_assoc()

Em terceiro lugar, depois de sacados os campos do registo seleccionado, tens de fazer com que os campos do registo apareçam nos seus devidos campos do formulário, para isso, terás de definir o "Value" dos campos <inputs>, o InnerHTML das <textareas> e o selected das options dos campos <select>.

Em Exemplo: (depois de já teres a variável "id" seleccionada no método GET)

<?
# Buscas todos os campos do registo escolhido (atencao que ja tenho as ligacoes a BD feitas na var $connection)
$registo = mysql_fetch_assoc("select * from database where id = $_GET[id] limit 1", $connetion);
?>

<form>

<!-- Exemplo para um Input-->
<input type="text" name="nome" value=" <?echo$registo[nome]?">

<!-- Exemplo para uma Textarea-->
<textarea name="descricao"> <?echo$registo[descricao]?> </textarea>

<!-- Exemplo para uma Select-->
<select>
<option <?if($registo[tipo]==1)echo" selected"?> >Tipo 1</option> 
<option <?if($registo[tipo]==2)echo" selected"?> >Tipo 2</option>
</select>

<!-- Nao esquecer de enviar o ID para o destino do Form, para que o possas utilizar para identificar o registo a alterar-->
<input type="hidden" name="id" value=" <?echo$_GET[id]?> ">

</form>

E pronto, agora basta-te na página de destino do FORM fazer um update à base de dados, tendo em conta o registo em causa.

É assim que faço. Se alguém tiver alguma questão ou sugestão.... o threat está aberto.

Cumprimentos,

ruitalia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas então nesta situação como faço? Tentei fazer isso mas deu erro :S:

function editar($id)
{
global $ligar;
$enviar = $_POST[enviar];

if(!$enviar)
	{
		$query = "SELECT titulo, preco, precoenvio, categoria, descricao FROM shopumbus_stock WHERE id='$id'";
	$result = mysql_query($query) or die ("Erro na query: $query. " .mysql_error());

       		if(mysql_num_rows($result) >0)
		{
       		$row = mysql_fetch_object($result);
       		?>
<div class="formholder">
<p class="titulo">Editar stock</p>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
         Titulo:
         <input type="text" name= "Titulo" size="20"><BR>
         Preço:
         <input type="text" name= "Preco" size="20"> <BR>
         Transporte:
         <input  type="text" name= "Precoenvio" size="20"> <BR>
         Categoria:
         <select name"Categorias">
                 <option value= "Musica, CDs e Vinyls">Musica, CDs e Vinyls</option>
                 <option value= "Instrumentos Musicais">Instrumentos Musicais</option>
                 <option value= "Componentes">Componentes</option>
         </select>  <BR>
         Descrição:
	<textarea name="Descricao" rows="15" cols="70">
</textarea>
	<input name="enviar" type="submit" value="enviar" />
</form>
<a href="administrar.php"><font color=#AD585C>Menu Principal</font></a>
</div>
       		<?php
       		echo "\n";
       		}
	else
		{
       		echo "<p>Intem do stock não encontrado!</p>";
       		}
  	}
else
	{
	$titulo = $_POST[Titulo];
	$preco = $_POST[Preco];
	$precoenvio = $_POST[Precoenvio];
	$categoria = $_POST[Categorias];
	$descricao = $_POST[Descricao];

		$query = "UPDATE shopumbus_stock SET titulo='$titulo', preco='$preco', precoenvio='$precoenvio', categoria='$categoria', descricao='$descricao', pdata = pdata WHERE id = '$id'";
       		$result = mysql_query($query) or die ("Erro na query: $query. " .mysql_error());
	echo "Stock Alterado!";
	echo "\n";
	echo "<a href=\"administrar.php\"><font color=#AD585C>Menu Principal</font></a>";
	echo "\n";
	}

}

E ja agora gostava de saber o porque que a opçao do select não esta a ser enviado para a base de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E ja agora gostava de saber o porque que a opçao do select não esta a ser enviado para a base de dados.

Talvez porque tens <select name"Categorias"> em vez de <select name="Categorias">

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora