Ir para conteúdo

POWERED BY:

Arquivado

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

allex_carvalho

Inserir legenda em fotos

Recommended Posts

Bom dia pessoal.

 

Gostaria de inserir legenda em fotos de uma galeria. Estou listando tudo certinho, porém, não estou conseguindo gravar a legenda. Segue abaixo o código:

 

<form id="alteracoes" action="<?=$UrlPrefix;?>?p=<?=$NamePagina;?>&app=legenda" method="POST">

 <table width="914" cellpadding="2" cellspacing="2" style="float:left; clear:both;">
 <?
$bg = 0;
while($res = mysql_fetch_assoc($sql)){
$bg = $bg+1;
if($bg % 2==0)
{$ex = "#E9E9E9";}
else{$ex = "#EFEFEF";}

	$consulta	= "SELECT * FROM site_fotos_img";
	$qr			= mysql_query($consulta) or die(mysql_error());
	$codigo		= (int)$_GET['id'];
 ?>
   <tr bgcolor="<?=$ex;?>">
     <td><img src="../_php/Thumb.php?W=200&H=150&img=_img/_upload/fotos/<?=$res2['pasta']."/".$res["img"]; ?>" /></td>
     <td>
       	<label>Legenda.:</label>
    		<input type="text" size="60" name="legenda[]" id="legenda" class="campo" value="<? if($codigo != ""){ echo $res["legenda"];}?>" />
     </td>    
     <td width="100" align="center">
     		<label>Excluir</label>
       	<!--<a href="javascript:void(0);" onclick="javascript:ExcluirFoto(<?=$res["id"];?>);" style="color:#F00;"><b>Excluir Imagem</b></a>-->
       	<input type="checkbox" name="excluir[]" value="<?=$res["id"];?>" id="excluir" />
     </td>
   </tr>

 <? } ?>
 </table>

 </div>
 <div style="clear:both; margin-top:15px;">
   <input type="button" value="Voltar" alt="Voltar" class="botao" style="margin-right:5px; float:right;" onclick="window.location='<?=$UrlPrefix;?>?p=<?=$NamePagina;?>';" />
   <input type="submit" value="Salvar Alterações" class="botao" alt="Salvar Alteracoes" style="float:right; margin-right:10px;" />
 </div>  
 </form>

<?php
else if(isset($_REQUEST["app"]) && $_REQUEST["app"] == "legenda"){
$id = $_REQUEST["id"];
//---------------------------ADICIONANDO AS VARIAVEIS ----------------------------------//
$codigo		= (int)$_GET['id'];
$excluir	= $_POST['excluir'];
$legenda 	= array_filter($_POST['legenda']);
ksort($legenda);
array_values($legenda);
$totalItens = count($legenda);
//-----------------------------SELECT ID DA GALERIA-------------------------------------//
$consulta	= "SELECT site_fotos_img.id_galeria FROM site_fotos_img ORDER BY site_fotos_img.id_galeria DESC LIMIT 1";
$qr 		= mysql_query($consulta) or die(mysql_error());
$rs			= mysql_fetch_object($qr);
$contador	= $rs->id_galeria; 

//---------------------------METODOS PARA O ADD NO BD ----------------------------------//
for ($b = 0; $totalItens > $b; $b++){
$legenda = $legenda[$b];
$sql_update	= "UPDATE site_fotos_img SET legenda = ".$legenda." WHERE site_fotos_img.id = ".$codigo;
echo $sql_update;
$query		= mysql_query($sql_update) or die(mysql_error());
echo "<script>alert(\"Legenda atualizada com sucesso...\")</script>";
header("Location:home.php?p=galeria,de,fotos&app=lista,de,fotos&id=".$contador);
}

//-----------------------------EXLCUINDO INTENS DO BD-----------------------------------//
if ($excluir > 0){
$pesq		= "SELECT site_fotos_img.id, site_fotos_img.img, site_fotos_img.id_galeria, site_fotos.pasta FROM site_fotos_img INNER JOIN site_fotos WHERE site_fotos_img.id = '$codigo' AND site_fotos_img.id_galeria = '$idGaleria'";
$qr			= mysql_query($pesq) or die(mysql_error());
$rs			= mysql_fetch_object($qr);
$diretorio	= "_img/_upload/fotos/".$rs->pasta."/".$codigo;
	foreach($excluir as $item){
		$del	= "DELETE FROM site_fotos_img WHERE site_fotos_img.id = '$item'";
		unlink($diretorio);
		$qr		= mysql_query($del) or die(mysql_error());
	}
	echo "<script type=\"text/javascript\">alert(\"Registros excluidos com sucesso...\")</script>";
	header("Location:home.php?p=galeria,de,fotos&app=lista,de,fotos&id=".$contador);
}
}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq você não está conseguindo ?

 

aparece algum erro ? qual ?

qual é o resultado do echo $sql_update; ?

 

você não forneceu informações suficientes para que conseguissemos te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela atenção William Bruno.

 

O resultado do echo $sql_update; é:

 

UPDATE site_fotos_img SET legenda = afafafafad WHERE site_fotos_img.id = 0Unknown column 'afafafafad' in 'field list'

Compartilhar este post


Link para o post
Compartilhar em outros sites

é bem claro o erro, está faltando aspas simples no valor:

 

$sql_update     = "UPDATE site_fotos_img SET legenda = '{$legenda}' WHERE site_fotos_img.id = ".$codigo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema maior ai é o valor 0 do id, veja:

 

UPDATE site_fotos_img SET legenda = 'afafa' WHERE site_fotos_img.id = 0UPDATE site_fotos_img SET legenda = 'f' WHERE site_fotos_img.id = 0UPDATE site_fotos_img SET legenda = '' WHERE site_fotos_img.id = 0

 

Pelo menos agora ele dá a confirmação de cadastro, rsrs.

 

Obrigado mais uma vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai você tem q debugar amigo, veja:

 

 $codigo         = (int)$_GET['id'];

 

existe o parâmetro ID na URL ?

coloca um:

var_dump( $_GET );

e me diga oque retorna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retornou isso:

 

array(2) { ["p"]=> string(16) "galeria,de,fotos" ["app"]=> string(7) "legenda" } UPDATE site_fotos_img SET legenda = 'afdafa' WHERE site_fotos_img.id = 0array(2) { ["p"]=> string(16) "galeria,de,fotos" ["app"]=> string(7) "legenda" } UPDATE site_fotos_img SET legenda = 'f' WHERE site_fotos_img.id = 0array(2) { ["p"]=> string(16) "galeria,de,fotos" ["app"]=> string(7) "legenda" } UPDATE site_fotos_img SET legenda = '' WHERE site_fotos_img.id = 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

pronto.. não tem não nenhum parametro id na url, então como você queria pegar ele com $_GET ?

 

além disso, essa variavel do WHERE, não deveria refletir cada foto ?

repense a estrutura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou apanhando aqui para adaptar essa estrutura. Nunca fiz um sistema parecido. Esse codigo é de um outro programador que trabalhava aqui. Ele só sobe fotos, sem legendas. Enfim, não estou conseguindo montar a estrutura.

 

Poderia dar as coordenadas de como montar essa lógica?

 

Obrigado.

 

_________________________________________________________

 

Para pegar o id das fotos tentei usar a seguinte estrutura:

 

<?
$bg = 0;
while($res = mysql_fetch_assoc($sql)){
$bg = $bg+1;
if($bg % 2==0)
{$ex = "#E9E9E9";}
else{$ex = "#EFEFEF";}

	$consulta	= "SELECT * FROM site_fotos_img";
	$qr			= mysql_query($consulta) or die(mysql_error());
	$codigo		= (int)$_GET['id'];		
 ?>
   <tr bgcolor="<?=$ex;?>">
	<?php
       $ids		= $res['id'];
	?>
     <td><img src="../_php/Thumb.php?W=200&H=150&img=_img/_upload/fotos/<?=$res2['pasta']."/".$res["img"]; ?>" /></td>
     <td>
       	<label>Legenda.:</label>
    		<input type="text" size="60" name="legenda[]" id="legenda" class="campo" value="<? if($codigo != ""){ echo $res["legenda"];}?>" />
     </td>    
     <td width="100" align="center">
     		<label>Excluir</label>
       	<!--<a href="javascript:void(0);" onclick="javascript:ExcluirFoto(<?=$res["id"];?>);" style="color:#F00;"><b>Excluir Imagem</b></a>-->
       	<input type="checkbox" name="excluir[]" value="<?=$res["id"];?>" id="excluir" />
     </td>
   </tr>

 <? } ?>

 

E no update fiz assim:

 

else if(isset($_REQUEST["app"]) && $_REQUEST["app"] == "legenda"){
//---------------------------ADICIONANDO AS VARIAVEIS ----------------------------------//
$codigo		= (int)$_GET['id'];
$excluir	= $_POST['excluir'];
$legenda 	= array_filter($_POST['legenda']);
ksort($legenda);
array_values($legenda);
$totalItens = count($legenda);
echo $totalItens;
//-----------------------------SELECT ID DA GALERIA-------------------------------------//
$consulta	= "SELECT site_fotos_img.id_galeria FROM site_fotos_img ORDER BY site_fotos_img.id_galeria DESC LIMIT 1";
$qr 		= mysql_query($consulta) or die(mysql_error());
$rs			= mysql_fetch_object($qr);
$contador	= $rs->id;
echo "
	<script type=\"text/javascript\">
		alert(".$contador.");
	</script>
"; 

//---------------------------METODOS PARA O ADD NO BD ----------------------------------//
for ($b = 0; $totalItens > $b; $b++){
$legenda = $legenda[$b];
var_dump( $_GET );
$sql_update     = "UPDATE site_fotos_img SET legenda = '{$legenda}' WHERE site_fotos_img.id = ".$ids;
echo $sql_update;
$query		= mysql_query($sql_update) or die(mysql_error());
echo "<script>alert(\"Legenda atualizada com sucesso...\")</script>";
header("Location:home.php?p=galeria,de,fotos&app=lista,de,fotos&id=".$contador);
}

//-----------------------------EXLCUINDO INTENS DO BD-----------------------------------//
if ($excluir > 0){
$pesq		= "SELECT site_fotos_img.id, site_fotos_img.img, site_fotos_img.id_galeria, site_fotos.pasta FROM site_fotos_img INNER JOIN site_fotos WHERE site_fotos_img.id = '$codigo' AND site_fotos_img.id_galeria = '$idGaleria'";
$qr			= mysql_query($pesq) or die(mysql_error());
$rs			= mysql_fetch_object($qr);
$diretorio	= "_img/_upload/fotos/".$rs->pasta."/".$codigo;
	foreach($excluir as $item){
		$del	= "DELETE FROM site_fotos_img WHERE site_fotos_img.id = '$item'";
		unlink($diretorio);
		$qr		= mysql_query($del) or die(mysql_error());
	}
	echo "<script type=\"text/javascript\">alert(\"Registros excluidos com sucesso...\")</script>";
	header("Location:home.php?p=galeria,de,fotos&app=lista,de,fotos&id=".$contador);
}
}?>

 

A $sql_update está retornando isso:

 

5 array(2) { ["p"]=> string(16) "galeria,de,fotos" ["app"]=> string(7) "legenda" } UPDATE site_fotos_img SET legenda = 'P' WHERE site_fotos_img.id = You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

 

Obrigado pela atenção.

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.