Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

aboutrodrigo_

[Resolvido] Problema com chamada de variáveis

Recommended Posts

Bom, eu tenho uma página que edita posts que já estão salvos no banco de dados (editar.php). Eu pego a id do post a ser editado pela URL, faço a pesquisa pelo post com a id requirida no banco de dados e esses valores deveriam voltar no formulário, mas volta apenas uma variável: a que está em cima. Tudo funciona normal, só isso que não.

 

<?php
// Pega a ID do post a ser editado
// Vamos supor que estamos na URL: localhost/editar.php?00012
// O $parametros vai pegar o "00012" que é o ID do post no banco de dados

$parametros = $_SERVER['QUERY_STRING'];

// Se conecta e seleciona o banco de dados

$conexao = mysql_pconnect('localhost','root','')or die("Erro conexão MySQL");
mysql_select_db ('TNT',$conexao)or die("Erro seleção banco de dados");

// Faz a pesquisa no banco de dados

$query = "SELECT * FROM noticias WHERE id='$parametros';";
$resultado = mysql_query ($query,$conexao)or die("Não houve resultados na busca");
while ($linha = mysql_fetch_array ($resultado))


// DESCOBRIR O PORQUE DE NÃO ESTAR DANDO DE CHAMAR TODOS OS CAMPOS

$titulo = $linha['titulo'];
$texto = $linha['texto'];

if ($parametros == ''){
header('location:index.html');
}
?>

<form action="codigoeditar.php?<?php echo $parametros; ?>" method="post">
<b>Título</b><br /><input name="novotitulo" value="<?php echo $titulo; ?>" /><br /><br />
<b>Texto</b><br /><textarea name="novotexto"><?php echo $texto; ?></textarea><br /><br />
<input type="submit" value="Enviar" />
</form>

 

Assim aparece a input 'novotitulo' preenchida com o título do post, mas não aparece na textarea 'novotexto'. Mas se eu trocar, deixar o $texto = $linha['texto']; em cima do $titulo = $linha['titulo'];.

 

$texto = $linha['texto'];
$titulo = $linha['titulo'];

 

Ocorre justamente o contrário, aparece preenchida a textarea 'novotexto' com o texto do post e a input 'novotitulo' aparece vazia.

 

Como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta as chaves no laço:

 

while ($linha = mysql_fetch_array ($resultado)){
$titulo = $linha['titulo'];
$texto = $linha['texto'];
}

 

Quando você não põem chaves, o laço só vai repetir a linha que esta logo após ele, por isso ele só mostrava o que estava em cima.

 

Edit: essa regra das chaves não é apenas para laço, serve para os outros comandos que podem ter chaves(if,switch,...).

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.