Jump to content


Lau

Member Since 15/02/2010
Offline Last Active 26/08/2010, 21:18
-----

Topics I've Started

Exibir Apenas 1 De 3 Imagens Relacionadas A Uma Notícia

26/08/2010, 20:25

Buenas pessoal, estou adaptando o código que o Thiago Belem tem disponibilizado no site dele de um sistema de destaques. Tranquei em um problema aqui que está bem complicado pra mim resolver sozinho.

O meu BD tem uma tabela gvnews e outra gvnews_img. Na parte de administração onde cadastro a noticia, tenho o campo do titulo, descrição e posso fazer o envio de 3 imagens que quando inseridas na tabela gvnews_img, é colocado o id da noticia que fica cadastrada em gvnews pra futuramente fazer um relacionamento nas duas tabelas. Até ai tudo funcionando perfeitamente, o problema está em fazer com que no sistema de destaques seja selecionado apenas UMA imagem das que são cadastradas. Acontece que quando tem duas ou tres imagens cadastradas, a noticia no sistema destaque acaba repetindo e exibindo 2 ou 3 vezes a mesma notícia só que com cada uma das imagens cadastradas nela.

Como posso fazer para que seja selecionado apenas uma das imagens cadastradas de cada noticia?

O código que estou usando é esse:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="pt-BR"> 
 
<head profile="http://gmpg.org/xfn/11">

	<title>Sistema de Destaques - Thiago Belem / Blog</title>
	<meta name="author" content="Thiago Belem - contato@thiagobelem.net" />
	
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
	<!-- CSS -->
	<link rel="stylesheet" href="css/destaque.css" type="text/css" />
	
	<!-- jQuery -->
	<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
	<script type="text/javascript" src="js/jquery.cycle.all.min.js"></script>
	<script type="text/javascript" src="js/jquery.destaques.js"></script>
	
	<!-- Estilos adicionais (apenas para essa página de exemplo) -->
	<style>
	h1 { font-size: 20px; color: black; }
	p.creditos { font-size: 14px; color: black; font-family: Tahoma, Verdana, sans-serif; }
	</style>
	
</head>
<body>
<?php
include ("include/conecta.php");
 
	$sql = "SELECT gvnews_img.imagem, gvnews.titulo, gvnews.id AS gvnewsid FROM gvnews_img, gvnews WHERE gvnews_img.id_news = gvnews.id ORDER BY gvnews.id DESC LIMIT 5";
	$query = mysql_query($sql) OR trigger_error('ERRO: ' . mysql_error());

?> 
<div id="blocoDestaques">
	<a class="faixa" href="#" title=""><!-- --></a>
	<ul>
	<?php
	while ($linha = mysql_fetch_array($query)) {

	$id = $linha["gvnewsid"];
	$titulo = $linha["titulo"];
	$imagem = $linha["imagem"];
	?>
		<li>
			<a href="<?php echo $id; ?>" title="<?php echo $titulo; ?>">
				<img src="<?php echo $imagem; ?>" alt="<?php echo $titulo; ?>" />
			</a>
			<div class="fundo"><!--  --></div>
			<p><a href="<?php echo $id; ?>" title="<?php echo $titulo; ?>"><?php echo $titulo; ?></a></p>
		</li>
		<?php } ?>
	</ul>
</div>
</body>
</html>

Buenas pessoal, estou adaptando o código que o Thiago Belem tem disponibilizado no site dele de um sistema de destaques. Tranquei em um problema aqui que está bem complicado pra mim resolver sozinho.

O meu BD tem uma tabela gvnews e outra gvnews_img. Na parte de administração onde cadastro a noticia, tenho o campo do titulo, descrição e posso fazer o envio de 3 imagens que quando inseridas na tabela gvnews_img, é colocado o id da noticia que fica cadastrada em gvnews pra futuramente fazer um relacionamento nas duas tabelas. Até ai tudo funcionando perfeitamente, o problema está em fazer com que no sistema de destaques seja selecionado apenas UMA imagem das que são cadastradas. Acontece que quando tem duas ou tres imagens cadastradas, a noticia no sistema destaque acaba repetindo e exibindo 2 ou 3 vezes a mesma notícia só que com cada uma das imagens cadastradas nela.

Como posso fazer para que seja selecionado apenas uma das imagens cadastradas de cada noticia?

O código que estou usando é esse:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="pt-BR"> 
 
<head profile="http://gmpg.org/xfn/11">

	<title>Sistema de Destaques - Thiago Belem / Blog</title>
	<meta name="author" content="Thiago Belem - contato@thiagobelem.net" />
	
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
	<!-- CSS -->
	<link rel="stylesheet" href="css/destaque.css" type="text/css" />
	
	<!-- jQuery -->
	<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
	<script type="text/javascript" src="js/jquery.cycle.all.min.js"></script>
	<script type="text/javascript" src="js/jquery.destaques.js"></script>
	
	<!-- Estilos adicionais (apenas para essa página de exemplo) -->
	<style>
	h1 { font-size: 20px; color: black; }
	p.creditos { font-size: 14px; color: black; font-family: Tahoma, Verdana, sans-serif; }
	</style>
	
</head>
<body>
<?php
include ("include/conecta.php");
 
	$sql = "SELECT gvnews_img.imagem, gvnews.titulo, gvnews.id AS gvnewsid FROM gvnews_img, gvnews WHERE gvnews_img.id_news = gvnews.id ORDER BY gvnews.id DESC LIMIT 5";
	$query = mysql_query($sql) OR trigger_error('ERRO: ' . mysql_error());

?> 
<div id="blocoDestaques">
	<a class="faixa" href="#" title=""><!-- --></a>
	<ul>
	<?php
	while ($linha = mysql_fetch_array($query)) {

	$id = $linha["gvnewsid"];
	$titulo = $linha["titulo"];
	$imagem = $linha["imagem"];
	?>
		<li>
			<a href="<?php echo $id; ?>" title="<?php echo $titulo; ?>">
				<img src="<?php echo $imagem; ?>" alt="<?php echo $titulo; ?>" />
			</a>
			<div class="fundo"><!--  --></div>
			<p><a href="<?php echo $id; ?>" title="<?php echo $titulo; ?>"><?php echo $titulo; ?></a></p>
		</li>
		<?php } ?>
	</ul>
</div>
</body>
</html>








Camarada de outro fórum matou a charada...


group by pelo id da notícia...


Abrasss a todos

Update Tabelas Relacionadas + Checkbox

22/02/2010, 21:55

Buenas pessoal, só parei de encomodar porque fui viajar hehehehe, mas estamos de volta. Bom, a dúvida agora é a seguinte, com a ajuda do pessoal do fórum consegui chegar ao seguinte código abaixo, que claro, pode ser melhorado, mas isso vou fazendo aos poucos. A missão agora é a seguinte, essa página é a que exibe os detalhes da notícia para fazer as midificações. O titulo e texto estão atualizando perfeitos, meu problema está sendo em atualizar as imagens. Caso esteja selecionada a opção do checkbox para trocar a imagem, a função tem que ler o ID da checkbox que corresponde ao ID da imagem e atualizar a mesma. O ID está passando corretamente pela checkbox na variavel $valores. Minha dúvida é em questão do comando UPDATE, como eu tenho que montá-lo para que faça o update na tabela gvnews (que está ok) e o update na gvnews_img.

Ainda não coloquei o script para verificar a imagem, apaga-la do BD e fazer o upload da nova imagem, está apenas a função para pegar as váriaveis e fazer o update no BD. Segue abaixo o código:




<?php
require_once("verifica.php");
include ("include/conecta.php");
include("fckeditor/fckeditor2.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>

<body>

<form action="" method="post" enctype="multipart/form-data" name="form">
<?php
$id = (int)$_GET["id"];
$titulo = isset($_POST['titulo']) ? $_POST['titulo'] : '';
$texto = isset($_POST["texto"]) ? $_POST["texto"] : '';

if(isset($_POST['submit'])){

$chk = $_POST["status"];
if($chk!="") {
foreach($chk as $valores) {

echo "Status checkbox - $valores <br>";

}
}
$dados = "UPDATE gvnews SET titulo='$titulo',texto='$texto' WHERE id='$id'";
$resultado = mysql_query($dados) or die ("Não foi possível realizar a consulta ao banco de dados");

$msg = "Notícia editada com sucesso!";
}

$dados1 = mysql_query("SELECT * FROM gvnews WHERE id=$id");
while($linha=mysql_fetch_array($dados1)) {

$id = $linha["id"];
$titulo = $linha["titulo"];
$texto = $linha["texto"];
?>
<?php
if(isset($msg)){
echo $msg;
}
?>
<table>
<tr>
<td>Titulo:</td>
<td>
<input name="titulo" type="text" value="<?php echo $titulo ?>" size="75">
</td>
</tr>
<tr>
<td>Texto:</td>
<td>
<?php
$oFCKeditor = new FCKeditor('texto');
$oFCKeditor->BasePath = 'fckeditor/';
$oFCKeditor->Value = "$texto" ;
$oFCKeditor->Create();
?> </td>
</tr>
<td>Imagem:</td>
<td rowspan="2">
<table width='500' border='0' cellspacing='0' cellpadding='0'>
<tr>
<?php
$dados2 = mysql_query("SELECT * FROM gvnews_img WHERE id_news=$id ORDER BY id");
while($linha2=mysql_fetch_array($dados2)) {
$id_img = $linha2["id"];
$imagem = $linha2["imagem"];
echo "<td><img src='thumb.php?imagem=../$imagem' width='100' height='100' alt='$id_img'>";
echo "<br>";
echo "<input name='status[]' type='checkbox' value='$id_img'/>Trocar imagem</td>";
}
}
?>
</tr>
</table>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<tr>
<td>Imagem 1:</td>
<td>
<input name="fotos[]" type="file" size="63">
</td>
</tr>
<tr>
<td>Imagem 2:</td>
<td>
<input name="fotos[]" type="file" size="63">
</td>
</tr>
<tr>
<td>Imagem 3:</td>
<td>
<input name="fotos[]" type="file" size="63">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="Editar">
<input type="reset" name="reset" value="Limpar Formulario">
</td>
</tr>
</table>
</form>
</body>
</html>

Exibir Imagens Lado A Lado

15/02/2010, 20:02

Buenas pessoal, não ia conseguir ficar muito tempo longe hehehe, Estou aqui me batendo de novo. Tenho duas tabelas que quando inserida alguma noticia, é cadastrado em GVNEWS e o id correspondente a noticia é jogado em GVNEWS_IMG. Estou precisando editar essas notícias cadastradas, só que em cada notícia, tem a possibilidade de cadastrar até 3 imagens.

Preciso que sejam exibidas essas imagens lado a lado e logo que junto de cada imagem, tenha a possibilidade de um checkbox manter ela ou não (caso esteja selecionado, não atualiza a imagem, caso não esteja selecionado, ae sim atualiza a imagem e apaga a que está cadastrada).

Minha primeira dificuldade está em exibir as imagens cadastradas lado a lado, pois está repetindo todas as tags do html, formando assim estruturas iguais na mesma página. O código é este abaixo:

<?php
include ("include/conecta.php");
require_once("verifica.php");
include("fckeditor/fckeditor2.php");

	$id = $_GET["id"];
	
			if($_GET["acao"] == editar){
			
				$dados = "UPDATE gvnews SET titulo='$titulo',texto='$texto' WHERE id='$id'";
	$resultado = mysql_query($dados) or die ("Não foi possível realizar a consulta ao banco de dados");

		echo "editado com sucesso!";
	}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>
<body>
<form action="?cat=gvcad&sub=edit&acao=editar&id=<? echo "$id" ?>" method="post" enctype="multipart/form-data" name="form1">
  <table>
    <tr>
      <td colspan="2">( Editar )</td>
    </tr>
    <tr>
      <td colspan="2">&nbsp;</td>
    </tr>
	<?php
	 $dados = mysql_query("SELECT * FROM gvnews,gvnews_img WHERE gvnews.id=$id AND gvnews_img.id_news=$id");
	while ($linha = mysql_fetch_array($dados)) {
  	$id = $linha["id"];
	$titulo = $linha["titulo"];
	$texto = $linha["texto"];
	$imagem = $linha["imagem"];

?>
    <tr>
      <td>Titulo:</td>
      <td><input name="titulo" type="text" value="<? echo $titulo ?>" size="75" /></td>
    </tr>
    <tr>
      <td>Texto:</td>
      <td><?php $oFCKeditor = new FCKeditor('texto');
			   $oFCKeditor->BasePath = 'fckeditor/';
			   $oFCKeditor->Value = "$texto" ;
			   $oFCKeditor->Create();
			?>
      </td>
    </tr>
	<td>Imagem:</td>
      <td>
 <?
  if(empty($imagem)){
					echo "<img src='img/nophoto.gif' width='102' height='102'>";
				}else{	
					echo "<img src='thumb.php?imagem=../$imagem' alt='$titulo'>";
				}
				}
				?>
				</td>
    </tr>
		    <tr> 
      <td>&nbsp;</td>
      <td><label>
        <input name="status" type="checkbox" id="status" value="1" checked="checked" />
        manter imagem </label></td>
    <tr>
      <td>Imagem:</td>
      <td><input name="fotos[]" type="file" size="63" /></td>
    </tr>
    <tr>
      <td>Imagem:</td>
      <td><input name="fotos[]" type="file" size="63" /></td>
    </tr>
    <tr>
      <td>Imagem:</td>
      <td><input name="fotos[]" type="file" size="63" /></td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" name="Submit" value="Adicionar" onclick="return Valida()" />
          <input type="reset" name="Submit2" value="Limpar Formulario" />
      </td>
    </tr>
  </table>
</form>
</body>
</html>

[Resolvido] Deletar Multiplas Imagens De Tabela Relacionada

15/02/2010, 16:01

Buenas pessoal, estou me batendo aqui pra conseguir excluir as imagens de um sisteminha de notícias. Acontece o seguinte: É jogado o id da noticia cadastrada em GVNEWS para o campo ID_NEWS da GVNEWS_IMG, para relacionar as imagens cadastradas a notícia. Estou precisando quando for deletar a notícia, sejam removidas todas as imagens do servidor relacionadas a ela e também os valores no BD, só que não estou conseguindo fazer. Consigo deletar uma das três imagens da notícia, só que as outras se mantem no servidor. Eu acredito que deve ser colocado algum código que faça loop para remover as imagens que relacionadas a notícia, só que não estou achando a lógica. Tenho a seguinte estrutura de tabelas no BD:

CREATE TABLE gvnews (
        id int(5) unsigned NOT NULL auto_increment,
        titulo varchar(255) NOT NULL,
        data date NOT NULL,
        texto text,
        PRIMARY KEY (id)
        ) ENGINE = INNODB;

CREATE TABLE gvnews_img (
        id int(5) unsigned NOT NULL auto_increment,
        id_news int(5) unsigned NOT NULL,
        imagem text,
        PRIMARY KEY (id),
        INDEX (id_news),
        FOREIGN KEY (id_news) REFERENCES gvnews(id) ON DELETE CASCADE
        ) ENGINE = INNODB;




O código que estou utilizando é este:

<?php
include ("include/conecta.php");
require_once("verifica.php");

	$id = $_GET["id"];

	if($_GET["acao"] == excluir){

	$consulta = mysql_query("SELECT * FROM gvnews_img WHERE id_news = $id");
	$resultado = mysql_fetch_object($consulta);
	$sql = "DELETE gvnews,gvnews_img FROM gvnews INNER JOIN gvnews_img WHERE gvnews.id=$id AND gvnews_img.id_news=$id";
	$del = mysql_query($sql)or die(mysql_error());
	
	if( $del ){
	if(is_file($resultado->imagem)){
		unlink($resultado->imagem);
	} 
	}
	}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<table width="182" border="0" cellspacing="0" cellpadding="0">
  <?php
	$dados = mysql_query("SELECT * FROM gvnews ORDER BY data DESC");
	$conta = mysql_num_rows($dados);
		if($conta == "0"){
			echo "Sem noticias cadastradas";
	} else {
	?>
  <tr>
    <td width="47">ID</td>
    <td width="135">Status</td>
  </tr>
  <?php
	while($linha=mysql_fetch_array($dados)){
$id = $linha["id"];
?>
<tr>
<td><?php echo "$id" ?></td>
<td><a href="?cat=gvnews&amp;acao=excluir&amp;id=<?php echo $id; ?>">Excluir</a></td>
</tr>
<?php
}
}
?>
</table>
</body>
</html>




Qaulquer ajuda ou dica eu agradeço.

RESOLVIDO


<?
include ("include/conecta.php");
require_once("verifica.php");

	$id = $_GET["id"];

	if($_GET["acao"] == excluir){

	$consulta = mysql_query("SELECT * FROM gvnews_img WHERE id_news = $id");
	while($resultado = mysql_fetch_object($consulta)){
	unlink($resultado->imagem);
	}
	$sql = "DELETE gvnews,gvnews_img FROM gvnews INNER JOIN gvnews_img WHERE gvnews.id=$id AND gvnews_img.id_news=$id";
	$del = mysql_query($sql)or die(mysql_error());
	}
?>

IPB Skin By Virteq