Jump to content


Photo

Update Nos Campos No Php Com Mysql


  • Faça o login para participar
23 replies to this topic

#1 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 12/09/2008, 12:23

Bom dia pessoal, tudo bem?

Estou tentando fazer um UPDATE com comando de SQL no PHP com o phpMyAdmin nos campos do nome_aluno, que são o ra_aluno, turma_id_turma, logradouro, numero, bairro, cidade, estado, telefone, naturalidade, nome-pai, nome-mae e que já estão definidos no banco de dados.

O nome do meu banco de dados se chama cadastro e o nome da tabela é aluno.

Já fiz o cadastrar, consultar, e remover do Banco...

Para fazer o UPDATE, estou com algumas dúvidas.

Como faço ao digitar o nome, ele buscar todos seus campos do banco de dados no qual eu possa editá-los, e salva-los?


Obrigado.

Edição feita por: trizzo, 13/09/2008, 10:23.


#2 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 12/09/2008, 15:54

Tá, e o que tem haver com o PhpMyAdmin?
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#3 ninhovip

ninhovip

    Interspire.com.br

  • Banidos
  • PipPipPip
  • 212 posts
  • Sexo:Masculino
  • Localidade:Recife - PE
  • Interesses:PHP, MySQL, Web 2.0, jQuery, Flash/AS, Photoshop

Posted 12/09/2008, 16:35

Cuidado.

UPDATE alunos set campo1='valor', campo2='valor', campo3='valor' where id='ID DO ALUNO'

Interspire Brasil
Tudo p/ Shopping Cart & E-mail Marketer BR
(usehost) Servidores VPS Cloud Computing
SMTP Dedicado | CPanel/WHM | WHMCS4
usehost.com.br | executtivo@msn.com | @filipemtro

#4 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 13/09/2008, 10:21

Consegui puxar os dados do banco de dados. Só que quando tento alterar ele me retorna isso e não altera:
UPDATE Completo UPDATE aluno SET ra_aluno='',turma_id_turma='',nome_aluno='',logradouro='',numero='',bairro='',cidade='',estado='',telefone='',naturalidade='',nome_pai='',nome_mae='' WHERE nome_aluno=''

Arquivos:
alteracao.php:
<?
$connect=mysql_connect("localhost","root","") or die("Connection Failure to Database");
//echo "Conectado ao servidor de Banco de Dados!<br><br>";
mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");

$nome_aluno=$_POST['nome_aluno'];
$sql="SELECT * FROM cadastro.aluno where nome_aluno='$nome_aluno'";
$result=mysql_query($sql) or die ("Não foi possível realizar a consulta no Banco de Dados");

while ($linha=mysql_fetch_array($result)){
$ra_aluno=$linha["ra_aluno"];
$turma_id_turma=$linha["turma_id_turma"];
$nome_aluno=$linha["nome_aluno"];
$logradouro=$linha["logradouro"];
$numero=$linha["numero"];
$bairro=$linha["bairro"];
$cidade=$linha["cidade"];
$estado=$linha["estado"];
$telefone=$linha["telefone"];
$naturalidade=$linha["naturalidade"];
$nome_pai=$linha["nome_pai"];
$nome_mae=$linha["nome_mae"];

echo "<h1> Alterar Cadastro de Alunos</h1>";
echo "<hr><br>";
echo "<form action=alteracao_db_php.php method='post'>";
echo "Ra Aluno: <input name='ra_aluno_novo' type='text' value='$ra_aluno' size=30><br>";
echo "Turma ID: <input name='turma_id_novo' type='text' value='$turma_id_turma' size=30><br>";
echo "Nome do Aluno: <input name='nome_aluno_novo' type='text' value='$nome_aluno' size=30><br>";
echo "Logradouro: <input name='logradouro_novo' type='text' value='$logradouro' size=30><br>";
echo "Numero: <input name='numero_novo' type='text' value='$numero' size=30><br>";
echo "Bairro: <input name='bairro_novo' type='text' value='$bairro' size=30><br>";
echo "Cidade: <input name='cidade_novo' type='text' value='$cidade' size=30><br>";
echo "Estado: <input name='estado_novo' type='text' value='$estado' size=30><br>";
echo "Telefone: <input name='telefone_novo' type='text' value='$telefone' size=30><br>";
echo "Naturalidade: <input name='naturalidade_novo' type='text' value='$$naturalidade' size=30><br>";
echo "Nome Mae: <input name='nome_pai_novo' type='text' value='$nome_pai' size=30><br>";
echo "Nome Pai: <input name='nome_pai_novo' type='text' value='$nome_mae' size=30><br>";
echo "<input type='submit' value='Alterar'>";
echo "</form>";
echo "<hr><br>";
}
?>


alteracao_db_php:
<?
include 'alteracao.php';
$connect=mysql_connect("localhost","root","") or die("Connection Failure to Database");
//echo "Conectado ao servidor de Banco de Dados!<br><br>";
mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");

$sql="UPDATE aluno SET ra_aluno='$ra_aluno_novo',turma_id_turma='$turma_id_novo',nome_aluno='$nome_aluno_novo',logradouro='$logradouro_novo',numero='$numero_novo',bairro='$bairro_novo',cidade='$cidade_novo',estado='$estado_novo',telefone='$telefone_novo',naturalidade='$naturalidade_novo',nome_pai='$nome_pai_novo',nome_mae='$nome_mae_novo' WHERE nome_aluno='$nome_aluno'";
$result=mysql_query($sql);
if (!$result) {
$message = '<br><br><br><br><B>UPDATE com problemas! </b>' . mysql_error() . "\n";
}
else
$message = '<br><br><br><b>UPDATE Completo</b> ' . $sql;
die($message);

?>



Alguém poderia me ajudar a solucionar esse problema? Parece ser um problema no comando de SQL, mas já tentei de várias formas diferentes.

Obrigado!

#5 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 13/09/2008, 11:51

Acho que o problema é que você não está pegando as variáveis via POST.

Um exemplo seria:

[codebox]//Obtendo os dados
$ra_aluno_novo = $_POST['ra_aluno_novo'];
$nome_aluno = $_POST['nome_aluno'];

$sql = "UPDATE aluno SET ra_aluno = '$ra_aluno_novo' WHERE nome_aluno='$nome_aluno'";[/codebox]

Neste caso você precisa adicionar no formulário do arquivo alteracao.php, um campo "hidden" com a váriavel nome do aluno. Exemplo:

[codebox]echo "<input name='nome_aluno' type='hidden' value='$nome_aluno'>";[/codebox]


Também deve remover o include do arquivo alteracao_db_php

Cuidado ao adicionar dados no banco. Tente saber mais sobre "SQL Injection".

Espero ter ajudado.

Edição feita por: CMAC, 13/09/2008, 12:02.


#6 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 13/09/2008, 12:19

CMAC,

Obrigado por responder.

Quanto ao que você disse sobre o POST $ra_aluno_novo = $_POST['ra_aluno_novo']; . Eu testei com o POST mas não deu certo tbm.. O valor do campo que desejo alterar some... dai coloco os novos dados e da o mesmo erro :-(


Peguei um exemplo na internet, dai eu fiz assim pra buscar os dados do banco e jogar nos text fields $ra_aluno=$linha["ra_aluno"];

Eu fiz o include do arquivo alteracao_db_php pois eu chamo ele assim que clico no botao alterar pra fazer o update dos novos dados.

Acredito que tenha algum erro no comando de SQL.
$sql="UPDATE aluno SET ra_aluno='$ra_aluno_novo',turma_id_turma='$turma_id_novo',nome_aluno='$nome_aluno_novo',logradouro='$logradouro_novo',numero='$numero_novo',bairro='$bairro_novo',cidade='$cidade_novo',estado='$estado_novo',telefone='$telefone_novo',naturalidade='$naturalidade_novo',nome_pai='$nome_pai_novo',nome_mae='$nome_mae_novo' WHERE nome_aluno='$nome_aluno'";
Erro do comando de SQL:
UPDATE Completo UPDATE aluno SET ra_aluno='',turma_id_turma='',nome_aluno='',logradouro='',numero='',bairro='',cidade='',estado='',telefone='',naturalidade='',nome_pai='',nome_mae='' WHERE nome_aluno=''

Como vocês podem ver não está salvando nada. ''

Edição feita por: trizzo, 13/09/2008, 12:36.


#7 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 13/09/2008, 14:10

Tenta assim:

alteracao.php
<?php$connect = mysql_connect("localhost", "root","") or die("Connection Failure to Database");mysql_select_db("cadastro", $connect) or die ("Não é possível selecionar o banco de dados");$nome_aluno = $_POST['nome_aluno'];$sql = "SELECT * FROM cadastro.aluno where nome_aluno='$nome_aluno'";$result = mysql_query($sql) or die ("Não foi possível realizar a consulta no Banco de Dados");while ( $linha = mysql_fetch_array($result)) {	$ra_aluno = $linha["ra_aluno"];	$turma_id_turma = $linha["turma_id_turma"];	$nome_aluno = $linha["nome_aluno"];	$logradouro = $linha["logradouro"];	$numero = $linha["numero"];	$bairro = $linha["bairro"];	$cidade = $linha["cidade"];	$estado = $linha["estado"];	$telefone = $linha["telefone"];	$naturalidade = $linha["naturalidade"];	$nome_pai = $linha["nome_pai"];	$nome_mae = $linha["nome_mae"];?>	<h1> Alterar Cadastro de Alunos</h1>	<hr><br>	<form action='alteracao_db_php.php' method='post'>	Ra Aluno: <input name='ra_aluno_novo' type='text' value='<?=$ra_aluno;?>' size=30><br>	Turma ID: <input name='turma_id_novo' type='text' value='<?=$turma_id_turma;?>' size=30><br>	Nome do Aluno: <input name='nome_aluno_novo' type='text' value='<?=$nome_aluno;?>' size=30><br>	Logradouro: <input name='logradouro_novo' type='text' value='<?=$logradouro;?>' size=30><br>	Numero: <input name='numero_novo' type='text' value='<?=$numero;?>' size=30><br>	Bairro: <input name='bairro_novo' type='text' value='<?=$bairro;?>' size=30><br>	Cidade: <input name='cidade_novo' type='text' value='<?=$cidade;?>' size=30><br>	Estado: <input name='estado_novo' type='text' value='<?=$estado;?>' size=30><br>	Telefone: <input name='telefone_novo' type='text' value='<?=$telefone;?>' size=30><br>	Naturalidade: <input name='naturalidade_novo' type='text' value='<?=$naturalidade;?>' size=30><br>	Nome Mae: <input name='nome_pai_novo' type='text' value='<?=$nome_pai;?>' size=30><br>	Nome Pai: <input name='nome_pai_novo' type='text' value='<?=$nome_mae;?>' size=30><br>	<input name='nome_aluno' type='hidden' value='<?=$nome_aluno;?>'>	<input type='submit' value='Alterar'>	</form>	<hr><br><?php } ?>


alteracao_db_php.php:
<?php$connect = mysql_connect("localhost", "root", "") or die("Connection Failure to Database");mysql_select_db("cadastro", $connect) or die ("Não é possível selecionar o banco de dados");$sql="UPDATE aluno SET ra_aluno='".$_POST['ra_aluno_novo']."',turma_id_turma='".$_POST['turma_id_novo']."',nome_aluno='".$_POST['nome_aluno_novo']."',logradouro='".$_POST['logradouro_novo']."',numero='".$_POST['numero_novo']."',bairro='".$_POST['bairro_novo']."',cidade='".$_POST['cidade_novo']."',estado='".$_POST['estado_novo']."',telefone='".$_POST['telefone_novo']."',naturalidade='".$_POST['naturalidade_novo']."',nome_pai='".$_POST['nome_pai_novo']."',nome_mae='".$_POST['nome_mae_novo']."' WHERE nome_aluno='".$_POST['nome_aluno']."'";$result = mysql_query($sql);if (!$result) {	$message = '<br><br><br><br><B>UPDATE com problemas! </b>' . mysql_error() . "\n";}else	$message = '<br><br><br><b>UPDATE Completo</b> ' . $sql;die($message);?>

Depois você diz se deu ou não certo.

Edição feita por: CMAC, 13/09/2008, 14:14.


#8 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 13/09/2008, 14:46

agora no resultado ele mostra os dados que eu alterei... mas não atualiza no banco de dados.

Resultado:
UPDATE Completo UPDATE aluno SET ra_aluno='12345678',turma_id_turma='123',nome_aluno='Tiago',logradouro='Rua dos Cajueiros',numero='808',bairro='Centro',cidade='Campinas',estado='SP',telefone='7832747288',naturalidade='são paulo',nome_pai='paulo andrade',nome_mae='' WHERE nome_aluno=''

Acredito que só tem um erro no WHERE nome_aluno='".$_POST['nome_aluno']."'";


CMAC, você tinha atualizado apenas essa linha correto?
$sql="UPDATE aluno SET ra_aluno='".$_POST['ra_aluno_novo']."',turma_id_turma='".$_POST['turma_id_novo']."',nome_aluno='".$_POST['nome_aluno_novo']."',logradouro='".$_POST['logradouro_novo']."',numero='".$_POST['numero_novo']."',bairro='".$_POST['bairro_novo']."',cidade='".$_POST['cidade_novo']."',estado='".$_POST['estado_novo']."',telefone='".$_POST['telefone_novo']."',naturalidade='".$_POST['naturalidade_novo']."',nome_pai='".$_POST['nome_pai_novo']."',nome_mae='".$_POST['nome_mae_novo']."' WHERE nome_aluno='".$_POST['nome_aluno']."'";

Edição feita por: trizzo, 13/09/2008, 14:49.


#9 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 13/09/2008, 14:59

Você testou com o arquivo alteracao.php que mandei?

Lá também tem uma mudança.

Note que ele não consegue pegar o 'nome_aluno'. O que fiz foi inserir este campo do tipo 'hidden'.

#10 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 13/09/2008, 15:15

acabei de testar e ele deu o seguinte:

UPDATE Completo UPDATE aluno SET ra_aluno='123344',turma_id_turma='84092895',nome_aluno='marcelli',logradouro='08080',numero='808',bairro='08',cidade='08',estado='08',telefone='0',naturalidade='$80',nome_pai='',nome_mae='' WHERE nome_aluno='.marcelli.'


adicionei a linha que você falou: echo "Nome Aluno: <input name='nome_aluno' type='hidden' value='$nome_aluno'>";

Mas o banco de dados ainda não atualiza :-(

tirei o ponto do nome_aluno='.marcelli.' e funcionou...deixe me testar novamente

só que agora o que está acontecendo é que eu atualizo e ele da o resultado na mesma página e também, quando clico em alterar denovo ele assume os valores anteriores.

#11 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 13/09/2008, 15:22

Coloque aqui o código destes dois arquivos novamente...

#12 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 13/09/2008, 15:36

alteracao.php:
<?

$connect=mysql_connect("localhost","root","") or die("Connection Failure to Database");
//echo "Conectado ao servidor de Banco de Dados!<br><br>";
mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");

$nome_aluno=$_POST['nome_aluno'];
$sql="SELECT * FROM cadastro.aluno where nome_aluno='$nome_aluno'";
$result=mysql_query($sql) or die ("Não foi possível realizar a consulta no Banco de Dados");

while ($linha=mysql_fetch_array($result)){
$ra_aluno=$linha["ra_aluno"];
$turma_id_turma=$linha["turma_id_turma"];
$nome_aluno=$linha["nome_aluno"];
$logradouro=$linha["logradouro"];
$numero=$linha["numero"];
$bairro=$linha["bairro"];
$cidade=$linha["cidade"];
$estado=$linha["estado"];
$telefone=$linha["telefone"];
$naturalidade=$linha["naturalidade"];
$nome_pai=$linha["nome_pai"];
$nome_mae=$linha["nome_mae"];

echo "<h1> Alterar Cadastro de Alunos</h1>";
echo "<hr><br>";
echo "<form action=alteracao_db_php.php method='post'>";
echo "Ra Aluno: <input name='ra_aluno_novo' type='text' value='$ra_aluno' size=30><br>";
echo "Turma ID: <input name='turma_id_novo' type='text' value='$turma_id_turma' size=30><br>";
echo "Nome do Aluno: <input name='nome_aluno' type='text' value='$nome_aluno' size=30><br>";
echo "Logradouro: <input name='logradouro_novo' type='text' value='$logradouro' size=30><br>";
echo "Numero: <input name='numero_novo' type='text' value='$numero' size=30><br>";
echo "Bairro: <input name='bairro_novo' type='text' value='$bairro' size=30><br>";
echo "Cidade: <input name='cidade_novo' type='text' value='$cidade' size=30><br>";
echo "Estado: <input name='estado_novo' type='text' value='$estado' size=30><br>";
echo "Telefone: <input name='telefone_novo' type='text' value='$telefone' size=30><br>";
echo "Naturalidade: <input name='naturalidade_novo' type='text' value='$$naturalidade' size=30><br>";
echo "Nome Mae: <input name='nome_pai_novo' type='text' value='$nome_pai' size=30><br>";
echo "Nome Pai: <input name='nome_pai_novo' type='text' value='$nome_mae' size=30><br>";
echo "Nome Aluno: <input name='nome_aluno' type='hidden' value='$nome_aluno'>";
echo "<br>";
echo "<input type='submit' value='Alterar'>";
echo "</form>";
echo "<hr><br>";
}
?>




alteracao_db_php.php:
<?
include 'alteracao.php';
$connect=mysql_connect("localhost","root","") or die("Connection Failure to Database");
//echo "Conectado ao servidor de Banco de Dados!<br><br>";
mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");

$sql="UPDATE aluno SET ra_aluno='".$_POST['ra_aluno_novo']."',turma_id_turma='".$_POST['turma_id_novo']."',nome_aluno='".$_POST['nome_aluno_novo']."',logradouro='".$_POST['logradouro_novo']."',numero='".$_POST['numero_novo']."',bairro='".$_POST['bairro_novo']."',cidade='".$_POST['cidade_novo']."',estado='".$_POST['estado_novo']."',telefone='".$_POST['telefone_novo']."',naturalidade='".$_POST['naturalidade_novo']."',nome_pai='".$_POST['nome_pai_novo']."',nome_mae='".$_POST['nome_mae_novo']."' WHERE nome_aluno='$nome_aluno'";

$result=mysql_query($sql);
if (!$result) {
$message = '<br><br><br><br><B>UPDATE com problemas! </b>' . mysql_error() . "\n";
}
else
$message = '<br><br><br><b>UPDATE Completo</b> ' . $sql;
die($message);

?>


e também está sumindo o nome do banco de dados :-(

estanho! mesmo removendo a linha do hidden ele apaga o nome do banco

#13 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 13/09/2008, 15:37

Faça o seguinte:

No alteracao.php, troque a linha do campo hidden por:
echo "<input name='nome_aluno_old' type='hidden' value='$nome_aluno'>";

No alteracao_db_php.php, remova o include e altere a linha UPDATE para:
$sql="UPDATE aluno SET ra_aluno='".$_POST['ra_aluno_novo']."',turma_id_turma='".$_POST['turma_id_novo']."',nome_aluno='".$_POST['nome_aluno_novo']."',logradouro='".$_POST['logradouro_novo']."',numero='".$_POST['numero_novo']."',bairro='".$_POST['bairro_novo']."',cidade='".$_POST['cidade_novo']."',estado='".$_POST['estado_novo']."',telefone='".$_POST['telefone_novo']."',naturalidade='".$_POST['naturalidade_novo']."',nome_pai='".$_POST['nome_pai_novo']."',nome_mae='".$_POST['nome_mae_novo']."' WHERE nome_aluno='" . $_POST['nome_aluno_old'] . "'";

Testa e diz o resultado.

O ideal era você ter na tabela do banco de dados uma coluna primaria, inteiro, com auto-incremente. Assim seria uma chave única para cada aluno, e facilitaria a o manuseio do banco de dados.

#14 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 13/09/2008, 15:44

testei.... resultado:

UPDATE Completo UPDATE aluno SET ra_aluno='934434',turma_id_turma='89898',nome_aluno='',logradouro='dubu',numero='0',bairro='uvu',cidade='vu',estado='vuvuvu',telefone='vu',naturalidade='$vuvu',nome_pai='vu',nome_mae='' WHERE nome_aluno='Tiago de Rizzo'

ele atualizou, mas apagou o nome da coluna nome_aluno do banco de dados

eu deixe no banco como chave primária: ra_aluno

#15 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 13/09/2008, 15:47

Não tinha reparado nisso.

Altere a linha de echo do Nome do aluno (o 6º echo dado) para:

[codebox]echo "Nome do Aluno: <input name='nome_aluno_novo' type='text' value='$nome_aluno' size=30><br>";[/codebox]




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq