Jump to content


Lau

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

Posts I've Made

In Topic: Update Tabelas Relacionadas + Checkbox

24/02/2010, 00:18

Eu olhei só isso:

$dados = "UPDATE gvnews,gvnews_img SET gvnews.titulo='$titulo',gvnews.texto='$texto',gvnews_img.imagem='$
imagem' WHERE gvnews.id='$id' AND gvnews_img.id='$valores'";

Está errado, você pegou as duas tabelas mas não ligou elas na cláusula WHERE.




Ae sem.Ponto' , essa parte pode ver no código que postei por ultimo agora que eu alterei, pra dar a escolha de se estiver selecionado algum campo do alterar imagem ae ele faz o update da tabela gvnews_img, se não estiver nada selecionado ele só atualiza os campos do titulo e texto da noticia.

A sua resposta me ajudou muito mesmo, principalmente a aprender como se faz esse tipo de update em multiplas tabelas. Mas meu problema agora está sendo caso eu selecione mais de um doas checkbox, ele faz o upload da imagem, mas só faz o update do caminho no BD de um dos registros, e não do numero total de checkbox selecionados.

In Topic: Update Tabelas Relacionadas + Checkbox

24/02/2010, 00:03

BAH< BAGUNCEI TODA MINHA RESPOSTA ANTERIOR, MAS VAI A PERGUNTA ABAIXO:








Buenas, coloquei a parte que faltava para upload, só que surgiu um probleminha como sempre, e que não consegui achar onde está o erro. Se selecionou um campo do "Trocar imagem" ele faz tudo certo, só que se seleciono dois ou tres campos, para trocar as 3 imagens ao mesmo tempo, ele até faz o upload da imagem para o servidor, só que não registra o caminho da imagem no BD. Um caminho ele sempre registra, mas os outros dois não. Postando código abaixo (tá bagunçado mas prometo que vou estudar bastante para resumir ele hehehe). ABRASS



<?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'])){

$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");

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

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

}

$consulta = mysql_query("SELECT * FROM gvnews_img WHERE id = $valores");
while($resultado = mysql_fetch_object($consulta))
{
unlink("../$resultado->imagem");
}

$destino = '../imag/';
$destinobd = 'imag/';
$fotos = $_FILES['fotos'];
$conta = 0;

for($i = 0; $i < sizeof($fotos['name']); $i++){

$nome = $fotos['name'][$i];
$tamanho = $fotos['size'][$i];
$tipo = $fotos['type'][$i];
$tmpname = $fotos['tmp_name'][$i];

if($tamanho > 0 && strlen($nome) > 1){
if(preg_match("/\.(gif|GIF|png|jpg|jpeg)$/i", $nome, $tipo)){

$imagem_nome = md5(uniqid(time())) . "." . end(explode('.', $nome));
$caminho = $destino . $imagem_nome;
$caminhobd = $destinobd . $imagem_nome;

if(move_uploaded_file($tmpname, $caminho)){

$dados = "UPDATE gvnews_img SET imagem='$caminhobd' WHERE id='$valores'";
$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>

In Topic: Exibir Imagens Lado A Lado

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

In Topic: Exibir Imagens Lado A Lado

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>


In Topic: Exibir Imagens Lado A Lado

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

IPB Skin By Virteq