Jump to content


Photo

Update No Banco


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

#1 ThiAgo Leão

ThiAgo Leão

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino
  • Interesses:PHP, MYSQ, Flash, Css, XHTML, Photoshop, Corel Draw

Posted 20/06/2008, 12:50

Bom quero atualizar alguns registros de uma só vez
alg pode dar uma ajuda? oq tem de errado no código

LISTAR.php

<?php$con=mysql_connect('localhost','root','')or die(mysql_error());mysql_select_db('leaodesign',$con);$fotos=mysql_query("SELECT id_port,foto,empresa,setor,data FROM portfolio ORDER BY id_port DESC")or die(mysql_error());$pasta_dir = "../arquivos/";$k = 0;echo "<table align=\"center\" cellspacing=\"8\" cellpadding=\"4\"><tr><input type=\"hidden\" value=\"$ver[1]\" />";while($ver = mysql_fetch_array($fotos)){    $k ++;	echo "<form name=\"alteracao\" method=\"POST\" action=\"alterar.php\">";    echo "<th align=\"center\"><img src=\"../arquivos/$ver[1]\" border=\"0\"><br><input name=\"alterar[]\" type=\"hidden\" value=\"$ver[1]\" /><input type=\"submit\" class=\"botao\" name=\"alterar\" value=\"Alterar\" /></form>";	echo "<form name=\"exclusao\" method=\"POST\" action=\"excluir.php\">";	echo "<input name=\"excluir[]\" type=\"hidden\" value=\"$ver[1]\" /><input type=\"submit\" class=\"botao\" name=\"ok\" value=\"Excluir\" /></th>";    echo "<td valign=\"top\"><input name=\"textfield\" type=\"text\" class=\"inputstyle2\" id=\"textfield\" value=\"$ver[2]\"><br />";    echo "<input name=\"textfield\" type=\"text\" class=\"inputstyle2\" id=\"textfield\" value=\"$ver[3]\"><br />";    echo "<input name=\"textfield\" type=\"text\" class=\"inputstyle2\" id=\"textfield\" value=\"$ver[4]\"><br></form></td>";	//    if ( $k == 3)    {        echo "</tr><tr>";        $k = 0;    }    }echo "</tr></table>"?>

ALTERAR.PHP

<?php$con=mysql_connect('localhost','root','')or die('Erro na conexão, verifique os dados'.mysql_error($con));mysql_select_db('leaodesign',$con)or die('Erro ao selecionar a tabela'.mysql_error($con));	if($_SERVER['REQUEST_METHOD']=='POST'){		$id = $_POST["id_port"];	$ver[2] = $_POST["empresa"];	$ver[3] = $_POST["setor"];	$ver[4] = $_POST["data"];	 // for($i=0; $i <= count($_POST['alterar']); $i++){	  	  $atualizar = mysql_query("UPDATE portfolio SET empresa = '$ver[2]',setor = '$ver[3]',data = '$ver[4]' WHERE id_port = '$id'") or die(mysql_error());  }  ($atualizar) ? header("location:index.php") : die('Erro ao excluir os dados.');//}?>


Alg sabe oq errei?
vlwww

#2 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 20/06/2008, 12:56

Retorna alguma mensagem de erro?
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#3 ThiAgo Leão

ThiAgo Leão

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino
  • Interesses:PHP, MYSQ, Flash, Css, XHTML, Photoshop, Corel Draw

Posted 20/06/2008, 13:04

Retorna alguma mensagem de erro?


não ele retorna po index, que tem o include po listar.php

tipo que nao atualiza os campos!

#4 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 20/06/2008, 13:15

pra ele não atualizar e porque ele não ta acionando a AçÃO DO FORMULARIO. Você ta usando alguma QUERY String ?
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#5 ThiAgo Leão

ThiAgo Leão

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino
  • Interesses:PHP, MYSQ, Flash, Css, XHTML, Photoshop, Corel Draw

Posted 20/06/2008, 13:25

pra ele não atualizar e porque ele não ta acionando a AçÃO DO FORMULARIO. Você ta usando alguma QUERY String ?


Estou não, os 2 codigos usados sao basicamente esses 2 ae!
;/

Edição feita por: ThiAgo Leão, 20/06/2008, 13:29.


#6 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 20/06/2008, 13:57

Puts cara, tá complicado de entender...
Posta pra gente a query gerada pelo PHP, ok?

#7 ThiAgo Leão

ThiAgo Leão

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino
  • Interesses:PHP, MYSQ, Flash, Css, XHTML, Photoshop, Corel Draw

Posted 20/06/2008, 14:07

Puts cara, tá complicado de entender...
Posta pra gente a query gerada pelo PHP, ok?


Nao ta gerando nda!

#8 lwirkk

lwirkk

    Veterano

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

Posted 20/06/2008, 14:43

No seu form, os campos estão assim:
<input name="textfield" type="text" class="inputstyle2" id="textfield" value="$ver[3]"><br />
E você está pegando o dado assim:
$ver[3] = $_POST["setor"];

$_POST['setor']
Para pegar o dado de um registro postado em um form com nome de SETOR, sendo que não tem esse campo com esse nome no form?
Mude o NAME dos INPUT's do form para como deseja pegar eles via POST.
Mas de qualquer forma tente esse código já "mudado":
<?php
$con=mysql_connect('localhost','root','')or die(mysql_error());
mysql_select_db('leaodesign',$con);
$fotos=mysql_query("SELECT id_port,foto,empresa,setor,data FROM portfolio ORDER BY id_port DESC")or die(mysql_error());

$pasta_dir = "../arquivos/";
$k = 0;

echo "<table align=\"center\" cellspacing=\"8\" cellpadding=\"4\"><tr>";
while($ver = mysql_fetch_array($fotos))
{
$k ++;
echo "<form name=\"alteracao\" method=\"POST\" action=\"alterar.php\">";
echo "<input name=\"id_port\" type=\"hidden\" value=\"$ver[1]\" />";
echo "<input name=\"empresa\" type=\"text\" class=\"inputstyle2\" id=\"textfield\" value=\"$ver[2]\"><br />";
echo "<input name=\"setor\" type=\"text\" class=\"inputstyle2\" id=\"textfield\" value=\"$ver[3]\"><br />";
echo "<input name=\"data\" type=\"text\" class=\"inputstyle2\" id=\"textfield\" value=\"$ver[4]\">";
echo "<th align=\"center\"><img src=\"../arquivos/$ver[1]\" border=\"0\"><br><input name=\"alterar[]\" type=\"hidden\" value=\"$ver[1]\" /><input type=\"submit\" class=\"botao\" name=\"alterar\" value=\"Alterar\" /></form>";
echo "<form name=\"exclusao\" method=\"POST\" action=\"excluir.php\">";
echo "<input name=\"id_port\" type=\"hidden\" value=\"$ver[1]\" />";
echo "<input type=\"submit\" class=\"botao\" name=\"ok\" value=\"Excluir\" /></th>";
echo "<td valign=\"top\"><br></form></td>";
//
if ( $k == 3)
{
echo "</tr><tr>";
$k = 0;
}

}
echo "</tr></table>"
?>

Na página de EXCLUIR pegue o ID de exclusão como:
$_POST['id_port']
também...

E o layout ficará diferente do seu por que para dar certo o ALTERAR com os dados certos, você precisaria colocar os INPUT's dentro do FORM de ALTERAR e não dentro do de EXCLUIR, do de EXCLUIR só precisaria do ID.

(y)
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#9 ThiAgo Leão

ThiAgo Leão

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino
  • Interesses:PHP, MYSQ, Flash, Css, XHTML, Photoshop, Corel Draw

Posted 20/06/2008, 15:06

kra nao sei se vc ajudou ou embolou minha cabeça! :wacko:

Olha como ta meu EXCLUIR.PHP

<?php$con=mysql_connect('localhost','root','')or die('Erro na conexão, verifique os dados'.mysql_error($con));mysql_select_db('leaodesign',$con)or die('Erro ao selecionar a tabela'.mysql_error($con));chmod('../arquivos/',0777);	if($_SERVER['REQUEST_METHOD']=='POST'){	  for($i=0; $i <= count($_POST['excluir']); $i++){	  @unlink('../arquivos/'.$_POST['excluir'][$i]);	  $apagar=mysql_query("DELETE FROM portfolio WHERE foto='{$_POST['excluir'][$i]}'")or die(mysql_error());  }  ($apagar) ? header("location:index.php") : die('Erro ao excluir os dados.');}?>

Antes estava com checkbox!
q raios vo fazer agora pa deletar? ;/

Obs: bagunço o html todo!

#10 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 20/06/2008, 16:21

Puts cara, tá complicado de entender...
Posta pra gente a query gerada pelo PHP, ok?


Nao ta gerando nda!

Como não está gerando nada? Esse código abaixo não faz isso?
mysql_query("UPDATE portfolio SET empresa = '$ver[2]',setor = '$ver[3]',data = '$ver[4]' WHERE id_port = '$id'") or die(mysql_error());
Troque por isso:
echo "UPDATE portfolio SET empresa = '$ver[2]',setor = '$ver[3]',data = '$ver[4]' WHERE id_port = '$id'";
Retire o seu redirecionamento.
Ele vai mostrar na tela a sua query.
Copie ela e cole aqui pra gente, pf...

#11 lwirkk

lwirkk

    Veterano

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

Posted 20/06/2008, 16:47

Se você tem um form com um campo de texto, você precisa definir um nome (NAME) para ele, para poder pegar os dados no PHP, certo?
ex:
<input NAME='nome' type='text' />

Se o FORM for via POST você pegaria os dados no PHP por:
$_POST['nome'];

Na variável POST tem nela o argumento ['nome'] por que o campo que se quer pegar o valor postado no form se chama NOME, se fosse:
<input NAME='telefone' type='text' />
O modo seria:
$_POST['telefone'];

Mas no seu caso, você tem os campos com nome definido de textfield, todos estão assim eu acho, e, no PHP você está pegando esses valores como:
$_POST["id_port"];
$_POST["empresa"];
$_POST["setor"];
$_POST["data"];


Sendo que (id_port, empresa, setor, data) não existem campos com esses nomes no seu form....

Entendeu? '-'

Nessa linha aqui sua por exemplo:
echo "<input name=\"textfield\" type=\"text\" class=\"inputstyle2\" id=\"textfield\" value=\"$ver[3]\"><br />";
Percebeu o NAME do seu campo de texto? Está como: textfield, se você quisesse pegar o valor dela, teria de colocar assim:
$_POST['textfield'];
Mas todos seus campos estão com esse nome, precisa mudar eles para os devidos: (id_port, empresa, setor, data) (y)

Edição feita por: lwirkk, 20/06/2008, 16:51.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#12 ThiAgo Leão

ThiAgo Leão

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino
  • Interesses:PHP, MYSQ, Flash, Css, XHTML, Photoshop, Corel Draw

Posted 20/06/2008, 17:40

Puts cara, tá complicado de entender...
Posta pra gente a query gerada pelo PHP, ok?


Nao ta gerando nda!

Como não está gerando nada? Esse código abaixo não faz isso?
mysql_query("UPDATE portfolio SET empresa = '$ver[2]',setor = '$ver[3]',data = '$ver[4]' WHERE id_port = '$id'") or die(mysql_error());
Troque por isso:
echo "UPDATE portfolio SET empresa = '$ver[2]',setor = '$ver[3]',data = '$ver[4]' WHERE id_port = '$id'";
Retire o seu redirecionamento.
Ele vai mostrar na tela a sua query.
Copie ela e cole aqui pra gente, pf...


Imprimiu isso na tela:

UPDATE portfolio SET empresa = '',setor = '',data = '' WHERE id_port = ''

#13 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 20/06/2008, 17:46

OK... só pra deixar claro, isso que eu te pedi pra fazer é só pra vc testar, pra vc poder visualizar a query q o PHP montou, ok?
Depois que você fizer o que o lwkirk disse, volte seu código para o que estava antes e teste.
Se não funcionar, volte o echo para poder ver o que o PHP está fazendo.
(y) boa sorte :D

#14 ThiAgo Leão

ThiAgo Leão

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino
  • Interesses:PHP, MYSQ, Flash, Css, XHTML, Photoshop, Corel Draw

Posted 20/06/2008, 17:52

Parse error: syntax error, unexpected T_LOGICAL_OR in C:\wamp\www\leaodesign\admin\portfolio\alterar.php on line 14

linha 14 é essa do update!

[codebox]<?php
$con=mysql_connect('localhost','root','')or die('Erro na conexão, verifique os dados'.mysql_error($con));
mysql_select_db('leaodesign',$con)or die('Erro ao selecionar a tabela'.mysql_error($con));

if($_SERVER['REQUEST_METHOD']=='POST'){

$ver[1] = $_POST["id_port"];
$ver[2] = $_POST["empresa"];
$ver[3] = $_POST["setor"];
$ver[4] = $_POST["data"];

// for($i=0; $i <= count($_POST['alterar']); $i++){

$atualizar = "(UPDATE portfolio SET empresa = '$ver[2]',setor = '$ver[3]',data = '$ver[4]' WHERE id_port = '$id')"; or die(mysql_error());
}
($atualizar) ? header("location:index.php") : die('Erro ao excluir os dados.');
//}
?>[/codebox]

#15 lwirkk

lwirkk

    Veterano

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

Posted 20/06/2008, 18:18

Não seria um MYSQL_QUERY ali ?

$atualizar = mysql_query("UPDATE portfolio SET empresa = '$ver[2]',setor = '$ver[3]',data = '$ver[4]' WHERE id_port = '$id'") or die(mysql_error());

Edição feita por: lwirkk, 20/06/2008, 18:19.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)




0 user(s) are reading this topic

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

IPB Skin By Virteq