Ir para conteúdo

POWERED BY:

Arquivado

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

RAT_BOY

[Resolvido] atualizar imagem do banco de dados via php!

Recommended Posts

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

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

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

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

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

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

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

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

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

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

$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

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

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

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

×

Informação importante

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