RAT_BOY 0 Denunciar post Postado Maio 20, 2009 entao galera no meu site o administrador pode atualizar os valores dos campos cadastrados, no caso dos produtos eu consegui fazer um comando sql usando update para atualizar os outros campos do produto. o unico problema é que eu nao consigo atualizar a imagem, ou seja, pegar o endereço da imagem e tal. Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Maio 21, 2009 para você carregar a imagem fez como? para atualizar será de forma semelhante qual erro vem enfrentando? Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 28, 2009 o que eu quero fazer é o mesmo que ele não sei se meus erros são mto ridiculos mas eu sou bem iniciante no php então estou pedindo ajuda. os erros que aparecem são : Notice: Undefined index: imagem in C:\xampp\htdocs\Projeto1\alteracao\update.php on line 21 Notice: Undefined index: imagem in C:\xampp\htdocs\Projeto1\alteracao\update.php on line 22 olha o codigo: <h2 class="style6">Alteração de Cadastro</h2> <form name="form1" method="post" action=""> <p>Digite o nº da nota que deseja alterar: <input name="nota" type="text" id="textfield" size="10" maxlength="10"> </p> <p> <label> <input type="submit" name="button" id="button" value="Alterar"> </label> </form> <p class="style6"> <? $con = mysql_connect("localhost", "Leonardo", "870339") or die ("Não foi possivel conectar ao servidor MySQL"); $db=mysql_select_db("projeto1"); $nnota=$_POST['nota']; $sql = "SELECT * FROM tbl_carga_terc WHERE carga_nnota='$nnota'"; $resultado = mysql_query($sql) or die (mysql_error()); //while ($linha=mysql_fetch_array($resultado)) { $linha=mysql_fetch_array($resultado); $nome = $linha["carga_nome"]; $nota = $linha["carga_nnota"]; $brm = $linha["carga_nbrm"]; $material = $linha["carga_material"]; $pnota = $linha["carga_pnota"]; $pusina = $linha["carga_pusina"]; $placa = $linha["carga_placa"]; $conformidade = $linha["carga_conformidade"]; $imagem = $linha["carga_imgnome"]; $data= implode("/", array_reverse(explode("-", $linha["carga_data"]))); $destino="../cadastro/imagens/carga_terc/"; $img="$destino$imagem"; echo "<form action=\"update.php\" name=\"form\" method=\"post\"> Nome:<br> <input type=\"text\" name=\"nome\" value=\"$nome\" maxlenght=\"100\" size=\"55\" /><br> Data:<br> <input type=\"text\" name=\"data\" value=\"$data\" maxlenght=\"20\" size=\"20\" /><br> Número da nota:<br> <input type=\"text\" name=\"nota\" value=\"$nota\" maxlenght=\"100\" size=\"55\" /><br> Número do BRM:<br> <input type=\"text\" name=\"brm\" value=\"$brm\" maxlenght=\"100\" size=\"55\" /><br> Material:<br> <input type=\"text\" name=\"material\" value=\"$material\" maxlenght=\"100\" size=\"55\" /><br> Peso da Nota:<br> <input type=\"text\" name=\"pnota\" value=\"$pnota\" maxlenght=\"100\" size=\"55\" /><br> Peso Usina:<br> <input type=\"text\" name=\"pusina\" value=\"$pusina\" maxlenght=\"100\" size=\"55\" /><br> Placa:<br> <input type=\"text\" name=\"placa\" value=\"$placa\" maxlenght=\"100\" size=\"55\" /><br> Conformidade:<br> <input type=\"text\" name=\"conformidade\" value=\"$conformidade\" maxlenght=\"100\" size=\"55\" /><br> Imagem:<br> <br><img src='$destino$imagem' width=300 height=200/><br> <br> <input type=\"file\" name=\"imagem\" value=\"$imagem\" maxlenght=\"200\" size=\"45\" /><br><br> <input type=\"submit\" value=\"Alterar\" /> </form>"; ?> update.php <head> <title></title> <? ini_set('error_reporting', E_ALL); $con = mysql_connect("localhost", "Leonardo", "870339") or die ("Não foi possivel conectar ao servidor MySQL"); $db=mysql_select_db("projeto1"); $nome =$_POST['nome']; $nota = $_POST['nota']; $brm = $_POST['brm']; $material = $_POST['material']; $pnota = $_POST['pnota']; $pusina =$_POST['pusina']; $placa = $_POST['placa']; $conformidade = $_POST['conformidade']; $data = $_POST['data']; $destino="../cadastro/imagens/carga_terc/"; $temporaria= $_FILES["imagem"]["tmp_name"]; $nome_img = $_FILES["imagem"]["name"]; $img="$destino$nome_img"; $sql ="UPDATE tbl_carga_terc SET carga_nome=".$nome.",carga_nnota=".$nota.",carga_nbrm=".$brm.",carga_material=".$material.",carga_pnota=".$pnota.",carga_pusina=".$pusina.",carga_placa=".$placa.",carga_conformidade=".$conformidade.",carga_imagem=".$img.",carga_data=".$data.",carga_imgnome=".$nome_img." WHERE carga_nnota=".$nota.")"; $query = mysql_query($sql); if ($query) { echo "<script language=\"JavaScript\">function redireciona() {window.location=\"cad_correto_terc.php\";}redireciona();</script>"; } else { echo "<script language=\"JavaScript\">function redireciona() {window.location=\"cad_errado_terc.php\";}redireciona();</script>"; } if (!copy($temporaria, $img)) { echo "falha ao copiar ...\n"; } */ ?> </head> <body> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 28, 2009 Coloque enctype do form como enctype="multipart/form-data". Deve funcionar. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 28, 2009 eu mudei o que você disse e agora da esse erro: Notice: Undefined index: imagem in C:\xampp\htdocs\Projeto1\alteracao\update.php on line 21 Notice: Undefined index: imagem in C:\xampp\htdocs\Projeto1\alteracao\update.php on line 22 Warning: copy() [function.copy]: Filename cannot be empty in C:\xampp\htdocs\Projeto1\alteracao\update.php on line 39 falha ao copiar ... Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 28, 2009 Está dizendo que não veio o índice imagem do array $_FILES. Imprima ele antes de usar, no inicio do código. Assim... echo '<pre>'; print_r($_FILES); Confira o nome e veja se está OK. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 29, 2009 eu vou tentar amanhã isso as coisas estão no pc da empresa Mas obrigado pela dica Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 29, 2009 Notice: Undefined index: imagem in C:\xampp\htdocs\Projeto1\alteracao\update.php on line 21 Notice: Undefined index: imagem in C:\xampp\htdocs\Projeto1\alteracao\update.php on line 22 Array ( ) Apareceu isso eu deixei todo codigo como comentario menos os $_POST e o $_FILES e continua dando erro. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 29, 2009 Veja que os dados não estão passando... Você definiu o enctype corretamente? Enviou alguma imagem? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 29, 2009 Então eu defini sim como enctype="multipart/form-data" o problema acontece se eu seleciono ou não uma imagem não importa da o mesmo erro Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 29, 2009 Poste o script do seu formulário e o que recebe os dados como estão agora. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 29, 2009 Formulario: <h2 class="style6">Alteração de Cadastro</h2> <form name="form1" method="post" action="" enctype="multipart/form-data"> <p>Digite o nº da nota que deseja alterar: <input name="nota" type="text" id="textfield" size="10" maxlength="10"> </p> <p> <label> <input type="submit" name="button" id="button" value="Alterar"> </label> </form> <p class="style6"> <? $con = mysql_connect("localhost", "Leonardo", "870339") or die ("Não foi possivel conectar ao servidor MySQL"); $db=mysql_select_db("projeto1"); $nnota=$_POST['nota']; $sql = "SELECT * FROM tbl_carga_terc WHERE carga_nnota='$nnota'"; $resultado = mysql_query($sql) or die (mysql_error()); //while ($linha=mysql_fetch_array($resultado)) { $linha=mysql_fetch_array($resultado); $nome = $linha["carga_nome"]; $nota = $linha["carga_nnota"]; $brm = $linha["carga_nbrm"]; $material = $linha["carga_material"]; $pnota = $linha["carga_pnota"]; $pusina = $linha["carga_pusina"]; $placa = $linha["carga_placa"]; $conformidade = $linha["carga_conformidade"]; $imagem = $linha["carga_imgnome"]; $data= implode("/", array_reverse(explode("-", $linha["carga_data"]))); $destino="../cadastro/imagens/carga_terc/"; $img="$destino$imagem"; echo "<form action=\"update.php\" name=\"form\" method=\"post\"> Nome:<br> <input type=\"text\" name=\"nome\" value=\"$nome\" maxlenght=\"100\" size=\"55\" /><br> Data:<br> <input type=\"text\" name=\"data\" value=\"$data\" maxlenght=\"20\" size=\"20\" /><br> Número da nota:<br> <input type=\"text\" name=\"nota\" value=\"$nota\" maxlenght=\"100\" size=\"55\" /><br> Número do BRM:<br> <input type=\"text\" name=\"brm\" value=\"$brm\" maxlenght=\"100\" size=\"55\" /><br> Material:<br> <input type=\"text\" name=\"material\" value=\"$material\" maxlenght=\"100\" size=\"55\" /><br> Peso da Nota:<br> <input type=\"text\" name=\"pnota\" value=\"$pnota\" maxlenght=\"100\" size=\"55\" /><br> Peso Usina:<br> <input type=\"text\" name=\"pusina\" value=\"$pusina\" maxlenght=\"100\" size=\"55\" /><br> Placa:<br> <input type=\"text\" name=\"placa\" value=\"$placa\" maxlenght=\"100\" size=\"55\" /><br> Conformidade:<br> <input type=\"text\" name=\"conformidade\" value=\"$conformidade\" maxlenght=\"100\" size=\"55\" /><br> Imagem:<br> <br><img src='$destino$imagem' width=300 height=200/><br> <br> <input type=\"file\" name=\"imagem\" value=\"$imagem\" maxlenght=\"200\" size=\"45\" /><br><br> <input type=\"submit\" value=\"Alterar\" /> </form>"; ?> update.php <? ini_set('error_reporting', E_ALL); $con = mysql_connect("localhost", "Leonardo", "870339") or die ("Não foi possivel conectar ao servidor MySQL"); $db=mysql_select_db("projeto1"); $nome =$_POST['nome']; $nota = $_POST['nota']; $brm = $_POST['brm']; $material = $_POST['material']; $pnota = $_POST['pnota']; $pusina =$_POST['pusina']; $placa = $_POST['placa']; $conformidade = $_POST['conformidade']; $data = $_POST['data']; $destino="../cadastro/imagens/carga_terc/"; $temporaria= $_FILES["imagem"]["tmp_name"]; $nome_img = $_FILES["imagem"]["name"]; $img="$destino$nome_img"; $sql ="UPDATE tbl_carga_terc SET carga_nome=$nome, carga_nnota=$nota, carga_nbrm=$brm, carga_material=$material,carga_pnota=$pnota,carga_pusina=$pusina,carga_placa=$placa,carga_conformidade=$conformidade,carga_imagem=$img,carga_data=$data, carga_imgnome=$nome_img WHERE carga_nnota=$nota"; $query = mysql_query($sql); if ($query) { echo "<script language=\"JavaScript\">function redireciona() {window.location=\"cad_correto_terc.php\";}redireciona();</script>"; } else { echo "<script language=\"JavaScript\">function redireciona() {window.location=\"cad_errado_terc.php\";}redireciona();</script>"; } if (!copy($temporaria, $img)) { echo "falha ao copiar ...\n"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 29, 2009 Você faz 2 forms... o enctype é no segundo... Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 29, 2009 Você faz 2 forms... o enctype é no segundo... Carlos Eduardo Funcionou Carlos muito obrigado agora pega o nome da imagem, porém ainda não funciona o meu arquivo update.php está correto ? Outra duvida do jeito que eu fiz o bd sempre recebe o valor de $img que é a soma das variaveis $destino$nome_img o que eu preciso fazer agora para se não for selecionada nenhuma nova imagem o bd não ser modificado ? Se achar que são perguntas demais nao precisa responder tudo apenas me indiquem uma direção eu me viro para o resto. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 29, 2009 Se achar que são perguntas demais nao precisa responder Vamos tentar te ajudar. meu arquivo update.php está correto ? Qual erro acontece? o que eu preciso fazer agora para se não for selecionada nenhuma nova imagem o bd não ser modificado ?Use um if.. Coloque a alteração do banco de dados dentro de um IF. Mais ou menos assim (só um exemplo). if(!empty($_FILES)){ //aqui dentro você faz a alteração do banco de dados } else { //aqui você exibe uma mensagem para o usuário que ele não selecionou nenhuma imagem } A lógica é mais ou menos esta. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 29, 2009 $sql ="UPDATE tbl_carga_terc SET carga_nome=$nome, carga_nnota=$nota, carga_nbrm=$brm, carga_material=$material,carga_pnota=$pnota,carga_pusina=$pusina,carga_placa=$placa,carga_conformidade=$conformidade,carga_imagem=$img,carga_data=$data, carga_imgnome=$nome_img WHERE carga_nnota=$nota"; $query = mysql_query($sql); if ($query) { echo "<script language=\"JavaScript\">function redireciona() {window.location=\"cad_correto_terc.php\";}redireciona();</script>"; } else { echo "<script language=\"JavaScript\">function redireciona() {window.location=\"cad_errado_terc.php\";}redireciona();</script>"; } if (!copy($temporaria, $img)) { echo "falha ao copiar ...\n"; } Acho que o problema está aqui ... não da nenhum erro ou warning mas ele redireciona para a pagina cad_errado_terc.php E quanto a parte que você falou do if vou tentar fazer e qualquer duvida volto aqui Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 29, 2009 Eu gostaria de fazer uma verificação se foi alterado mude no banco de dados se não foi não mexer mas não gostaria de ser reduntante e fazer campo por campo tem alguma for de verificar isso usando um loop ? Ta dificil eu to tentando aqui mas não está rolando. Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Julho 29, 2009 Consegui o que eu queria =D ! Fiz assim <h2 class="style6">Alteração de Cadastro</h2> <form name="form1" method="post" action=""> <p>Digite o nº da nota que deseja alterar: <input name="nota" type="text" id="textfield" size="10" maxlength="10"> </p> <p> <label> <input type="submit" name="button" id="button" value="Alterar"> </label> </form> <p class="style6"> <? $con = mysql_connect("localhost", "Leonardo", "870339") or die ("Não foi possivel conectar ao servidor MySQL"); $db=mysql_select_db("projeto1"); $nnota=$_POST['nota']; $sql = "SELECT * FROM tbl_carga_terc WHERE carga_nnota='$nnota'"; $resultado = mysql_query($sql) or die (mysql_error()); //while ($linha=mysql_fetch_array($resultado)) { $linha=mysql_fetch_array($resultado); $nome = $linha["carga_nome"]; $nota = $linha["carga_nnota"]; $brm = $linha["carga_nbrm"]; $material = $linha["carga_material"]; $pnota = $linha["carga_pnota"]; $pusina = $linha["carga_pusina"]; $placa = $linha["carga_placa"]; $conformidade = $linha["carga_conformidade"]; $imagem = $linha["carga_imgnome"]; $data= implode("/", array_reverse(explode("-", $linha["carga_data"]))); $destino="../cadastro/imagens/carga_terc/"; $img="$destino$imagem"; echo "<form action=\"update.php\" name=\"form\" method=\"post\" enctype=\"multipart/form-data\"> Nome:<br> <input type=\"text\" name=\"nome\" value=\"$nome\" maxlenght=\"100\" size=\"55\" /><br> Data:<br> <input type=\"text\" name=\"data\" value=\"$data\" maxlenght=\"20\" size=\"20\" /><br> Número da nota:<br> <input type=\"text\" name=\"nota\" value=\"$nota\" maxlenght=\"100\" size=\"55\" /><br> Número do BRM:<br> <input type=\"text\" name=\"brm\" value=\"$brm\" maxlenght=\"100\" size=\"55\" /><br> Material:<br> <input type=\"text\" name=\"material\" value=\"$material\" maxlenght=\"100\" size=\"55\" /><br> Peso da Nota:<br> <input type=\"text\" name=\"pnota\" value=\"$pnota\" maxlenght=\"100\" size=\"55\" /><br> Peso Usina:<br> <input type=\"text\" name=\"pusina\" value=\"$pusina\" maxlenght=\"100\" size=\"55\" /><br> Placa:<br> <input type=\"text\" name=\"placa\" value=\"$placa\" maxlenght=\"100\" size=\"55\" /><br> Conformidade:<br> <input type=\"text\" name=\"conformidade\" value=\"$conformidade\" maxlenght=\"100\" size=\"55\" /><br> Imagem:<br> <br><img src='$destino$imagem' width=300 height=200/><br> <br> <input type=\"file\" name=\"imagem\" value=\"$imagem\" maxlenght=\"200\" size=\"45\" /><br><br> <input type=\"hidden\" name=\"imagem2\" value=\"$imagem\" maxlenght=\"200\" size=\"45\" /><br> <input type=\"submit\" value=\"Alterar\" /> </form>"; ?> <? ini_set('error_reporting', E_ALL); $con = mysql_connect("localhost", "Leonardo", "870339") or die ("Não foi possivel conectar ao servidor MySQL"); $db=mysql_select_db("projeto1"); $nome =$_POST['nome']; $nota = $_POST['nota']; $brm = $_POST['brm']; $material = $_POST['material']; $pnota = $_POST['pnota']; $pusina =$_POST['pusina']; $placa = $_POST['placa']; $conformidade = $_POST['conformidade']; $data = $_POST['data']; $destino="../cadastro/imagens/carga_terc/"; $temporaria= $_FILES["imagem"]["tmp_name"]; $nome_img = $_FILES["imagem"]["name"]; $img_old=$_POST['imagem2']; $img="$destino$img_old"; $img2="$destino$nome_img"; $var=NULL; if ($nome_img==$var){ $sql ="UPDATE tbl_carga_terc SET carga_nome='$nome', carga_nnota='$nota', carga_nbrm='$brm', carga_material='$material',carga_pnota='$pnota',carga_pusina='$pusina',carga_placa='$placa',carga_conformidade='$conformidade',carga_imagem='$img',carga_data='$data', carga_imgnome='$img_old' WHERE carga_nnota='$nota'"; }else{ $sql ="UPDATE tbl_carga_terc SET carga_nome='$nome', carga_nnota='$nota', carga_nbrm='$brm', carga_material='$material',carga_pnota='$pnota',carga_pusina='$pusina',carga_placa='$placa',carga_conformidade='$conformidade',carga_imagem='$img2',carga_data='$data', carga_imgnome='$nome_img' WHERE carga_nnota='$nota'"; } $query = mysql_query($sql); if ($query) { echo "<script language=\"JavaScript\">function redireciona() {window.location=\"cad_correto_terc.php\";}redireciona();</script>"; } else { echo "<script language=\"JavaScript\">function redireciona() {window.location=\"cad_errado_terc.php\";}redireciona();</script>"; } ?> O unico problema agora é que as datas,alterando ou nao, sempre ficam zerda alguem tem ideia do porque ? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 29, 2009 A data no banco de dados deve estar como DATE(AAAA-MM-DD). Provavelmente o usuário digita como dd/mm/aaaa. Para converter ao inserir no BD, você pode usar esta função. function converte_data_para_bd ( $data ) { $x = implode('-', array_reverse(explode('/',$data))); return $x; } Para resgatar do BD e exibir no formato brasileiro, use o DATE_FORMAT. http://dev.mysql.com/doc/refman/4.1/pt/date-and-time-functions.html Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites