Jump to content


Photo

Exibir Imagens Lado A Lado


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

#1 Lau

Lau

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 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>


#2 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 15/02/2010, 20:45

Lau,


Vo te da umas dicas cara, pq senão vc vai viver pedindo ajuda.

antes de mais nada, programador e codigo organizado é como praia em dia de sol, então organize seu codigo para vc conseguir enxergar o que ta escrevendo.

Agora aos problemas!

1º Como vc me coloca um código fora do <html> e ainda por cima me da um echo nele?
2º Seu while ta errado.. vc ta fechando o while dentro de um <td> vc tem q fechar ele depois do <tr>
3º Seu codigo tem tags incompletas, veja que a linha (<tr>) que traz a imagem, não tem <tr> aberto, so fechando ele.

resolva estes problemas e seja feliz, ou copie abaixo

Abaixo seu codigo organizado.
tem uns comentarios que são umas observações particulares minha.

<!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>
		<?php
			include ("include/conecta.php");
			require_once("verifica.php");
			include("fckeditor/fckeditor2.php");
			
			$id = $_GET["id"];
			
			/* Eu removi todo esta parte do seu codigo
			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!";
			}*/

			
			# Substitu por isso
			if(isset($_POST['submit']))
			{
				$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 = "editado com sucesso!";
			}
		
		?>
		
		<form action="" method="post" enctype="multipart/form-data" name="form1">
			<table>
				<tr>
					<td colspan="2">( Editar )</td>
				</tr>
				
				<tr>
					<td colspan="2"> </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"];
						
						echo '<tr>'; #abre linha 1
						echo '<td>Titulo:</td>';
						echo '<td>';
						echo '<input name="titulo" type="text" value="'.$titulo.'" size="75" />';
						echo '</td>';
						echo '</tr>'; #fecha linha 1

						echo '<tr>'; #abre linha 2
						echo '<td>Texto:</td>';
						echo '<td>';
							$oFCKeditor = new FCKeditor('texto');
							$oFCKeditor->BasePath = 'fckeditor/';
							$oFCKeditor->Value = "$texto" ;
							$oFCKeditor->Create();
						echo '</td>';
						echo '</tr>'; #fecha linha 2

						echo '<tr>'; #abre linha 3 (aqui vc esqueceu de abrir no seu codigo
						echo '<td>Imagem:</td>';
						echo '<td>';

						if(empty($imagem))
						{
							echo "<img src='img/nophoto.gif' width='102' height='102'>";
						}
						else
						{  
							echo "<img src='thumb.php?imagem=../$imagem' alt='$titulo'>";
						}
						echo '</td>';
						echo '</tr>'; #fecha linha 3
					}
					?>
				<tr> 
					<td> </td>
					<td>
						<label>
							<input name="status" type="checkbox" id="status" value="1" checked="checked" />
							manter imagem
						</label>
					</td>
				</tr> <!-- Aqui vc esqueceu de fechar também -->

				<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>
				
				<?php 
					if(isset($msg))
					{
						echo '<tr>';
						echo '<td colspan="2">';
						echo $msg;
						echo '</td>';
						echo '</tr>';
					} 
				?>
				
					
			</table>
		</form>
	</body>
</html>

Outra coisa..
se vc esta fazendo o tratamento do post, na mesma página! então porque vc esta passando aquela URL enorme no action do formulario?
por isso tomei a liberdade de fazer algumas alterações, e vc compara com seu codigo!

Mais uma coisa que pude perceber agora, bom vc ta fazendo uma coisa estranha, onde vc tem os campos para enviar os arquivos.. todos estão com mesmo nome fotos[], como vc vai identificar quem é quem ?

Edição feita por: Max William, 15/02/2010, 20:53.

Se eu lhe ajudei ;) Clique para agradecer!

#3 Lau

Lau

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 15/02/2010, 20:53

Lau,


Vo te da umas dicas cara, pq senão vc vai viver pedindo ajuda.

antes de mais nada, programador e codigo organizado é como praia em dia de sol, então organize seu codigo para vc conseguir enxergar o que ta escrevendo.

Agora aos problemas!

1º Como vc me coloca um código fora do <html> e ainda por cima me da um echo nele?
2º Seu while ta errado.. vc ta fechando o while dentro de um <td> vc tem q fechar ele depois do <tr>
3º Seu codigo tem tags incompletas, veja que a linha (<tr>) que traz a imagem, não tem <tr> aberto, so fechando ele.

resolva estes problemas e seja feliz, ou copie abaixo


Uma coisa que eu não faço é colocar codigo php fora do html, perceba que vc esta dando um eco fora do HTML.
Outro problema no seu codigo são tags incompletas, por exemplo.. a linha que monta a imagem ela esta fechando o que ? se não esta aberto o <tr> para ela..

tente fazer isso.. arrume seu codigo, tire o php de fora do html e organize as tag incompletas e post os resultados.


Abaixo seu codigo organizado.
tem uns comentarios que são umas observações particulares minha.

<!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>
		<?php
			include ("include/conecta.php");
			require_once("verifica.php");
			include("fckeditor/fckeditor2.php");
			
			$id = $_GET["id"];
			
			/* Eu removi todo esta parte do seu codigo
			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!";
			}*/

			
			# Substitu por isso
			if(isset($_POST['submit']))
			{
				$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 = "editado com sucesso!";
			}
		
		?>
		
		<form action="" method="post" enctype="multipart/form-data" name="form1">
			<table>
				<tr>
					<td colspan="2">( Editar )</td>
				</tr>
				
				<tr>
					<td colspan="2"> </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"];
						
						echo '<tr>'; #abre linha 1
						echo '<td>Titulo:</td>';
						echo '<td>';
						echo '<input name="titulo" type="text" value="'.$titulo.'" size="75" />';
						echo '</td>';
						echo '</tr>'; #fecha linha 1

						echo '<tr>'; #abre linha 2
						echo '<td>Texto:</td>';
						echo '<td>';
							$oFCKeditor = new FCKeditor('texto');
							$oFCKeditor->BasePath = 'fckeditor/';
							$oFCKeditor->Value = "$texto" ;
							$oFCKeditor->Create();
						echo '</td>';
						echo '</tr>'; #fecha linha 2

						echo '<tr>'; #abre linha 3 (aqui vc esqueceu de abrir no seu codigo
						echo '<td>Imagem:</td>';
						echo '<td>';

						if(empty($imagem))
						{
							echo "<img src='img/nophoto.gif' width='102' height='102'>";
						}
						else
						{  
							echo "<img src='thumb.php?imagem=../$imagem' alt='$titulo'>";
						}
						echo '</td>';
						echo '</tr>'; #fecha linha 3
					}
					?>
				<tr> 
					<td> </td>
					<td>
						<label>
							<input name="status" type="checkbox" id="status" value="1" checked="checked" />
							manter imagem
						</label>
					</td>
				</tr> <!-- Aqui vc esqueceu de fechar também -->

				<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>
				
				<?php 
					if(isset($msg))
					{
						echo '<tr>';
						echo '<td colspan="2">';
						echo $msg;
						echo '</td>';
						echo '</tr>';
					} 
				?>
				
					
			</table>
		</form>
	</body>
</html>

Outra coisa..
se vc esta fazendo o tratamento do post, na mesma página! então porque vc esta passando aquela URL enorme no action do formulario?
por isso tomei a liberdade de fazer algumas alterações, e vc compara com seu codigo!






Muuuuuito bom Max, tapa de luva hehehehe. Pode ter certeza que li e vou reler suas dicas, já estou agora agilizando para melhorar o visual dos códigos, não sou programador na verdade, mas me interessei por php então pego uns códigos e vou tentando fazer algumas coisas. A falta de organização e lógica é pela falta de conhecimento em não saber qual função é melhor de usar para executar tais operações. Mas aos poucos a gente vai absorvendo isso.

Se tiver mais dicas estou ai para ler e entede-las. Valeu

#4 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 15/02/2010, 22:10

Uma das melhores dicas que dou para todos que querem mecher com web.. abandone todos programa editores de web é um grande passo ^^
use notepad++, editor similar ao notepad so que com caracteristicas de programação (vc pode selecionar qual linguagem esta escrevendo) e tem uma coisa muito interessante que te ajuda e muito a manter o codigo organizado, ele cria pontilhado na vertical, assim vc pode saber onde esta fechando a tag ou se quando vc clicar nela, ela não selecionar é porque tem algo de errado! nome da tag errado ou não existe mesmo

=)

fora isso.. dicas so vem a calhar quando encontramos problemas, ai analisamos o problema e vemos se existe uma forma melhor de se fazer o mesmo =D
Se eu lhe ajudei ;) Clique para agradecer!

#5 Lau

Lau

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 17/02/2010, 01:04

Buenas pessoal, consegui resolver a parada de exibir as imagens lado a lado, só qeu agora me surgiu um outro problema. Essa é uma pagina de editar a noticia, entao tem que aparecer o que está no BD ali na parte de titulo e texto, só que como o while fica depois disso, só exibe do while para baixo. Como posso fazer para aparecer os valores dos campos acima do while, mantendo a função de loop para as imagens da noticia? O código está assim:


<?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/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>
	
		<?php
			$id = $_GET["id"];
	
			$dados = mysql_query("SELECT * FROM gvnews,gvnews_img WHERE gvnews.id=$id AND gvnews_img.id_news=$id ORDER BY gvnews_img.id");	
				
				
  			$id = $linha["id"];
			$titulo = $linha["titulo"];
			$texto = $linha["texto"];
			$imagem = $linha["imagem"];
	
		?>
		
		<form action="?cat=gvcad&sub=edit&acao=editar&id=<?php echo "$id" ?>" method="post" enctype="multipart/form-data" name="form">
  			<table>
    			<tr>
      				<td colspan="2">Editar</td>
    			</tr>
    			<tr>
      				<td colspan="2">&nbsp;</td>
    			</tr>
    			<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
									$contador = 0;
										while($linha=mysql_fetch_array($dados)){
									$imagem = $linha["imagem"];
									$contador++;
											echo "<td>Imagem $contador<br><img src='thumb.php?imagem=../$imagem' width='100' height='100' alt='$titulo'><br><input name='status' type='checkbox' id='status' value='1' checked='checked' />manter imagem</td>";			
									if($contador == 3){
										echo "</tr><tr>";
									$contador = 0;
							     			 }
											 }
								?>
							</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>



#6 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 17/02/2010, 01:16

@ LAU
Simplesmente faça aquela consulta em cima do HTML, o correto é separar HTML do PHP, acredite eles não se dão muito bem.

Falopa!

#7 Lau

Lau

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 17/02/2010, 22:50

@ LAU
Simplesmente faça aquela consulta em cima do HTML, o correto é separar HTML do PHP, acredite eles não se dão muito bem.

Falopa!



Acabei fazendo while dentro de while, acredito que não é o certo, mas foi o unico jeito que consegui chegar ao resultado que estava querendo. Com o tempo e pratica vou adaptando e organizando melhor o código, aprendendo novas funções pra otimizar o desempenho tmb.


Valeu a todos pelas dicas, e já to postando novo topico hehehe

#8 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 20/02/2010, 11:48

Não é por nada não Lau, mas parece que vc não leu nada do que eu escrevi.

Verifica seu codigo cara, vc vai ver que tem varios erros de tags.
Tem TR abrindo e não fechando, tem TR fechando o que não ta aberto, isso que eu tive trabalho de arrumar sua estrutura HTML e colar pra você.

Do jeito que ta, nem com as piores das gambiarras não vai funcionar mesmo!

Edição feita por: Max William, 20/02/2010, 11:48.

Se eu lhe ajudei ;) Clique para agradecer!




1 user(s) are reading this topic

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

IPB Skin By Virteq