Ir para conteúdo

POWERED BY:

Arquivado

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

ozuna

problema++

Recommended Posts

Galera alguem sabe me dizer como faço pra variavel $id ser incrementada dentro da condição IF?

 

 

 

$name = z;	
	
	while($arand = mysql_fetch_array($rrand))
	{		    
	    $id = $name++;
	
	    $im_array = explode("|", $arand[imagem]);
		
		$Imagem = "<img src=\"produtos/$im_array[0]\" width=130 height=160 class=imagem name=$id>";
		
		if($im_array[1]){
	
                   $mudar_foto = "<img onmouseover=\"$id.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>";


                }

        }


Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi.

você não está usando $id no if.

 

 

PS 1: use aspas nos índices de array: $array['imagem']

 

PS 2: naquele if, se estiver querendo saber se o índice existe, use isset() para não gerar notices

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Beraldo, obrigado pelas dicas,

 

 

Dentro do IF se você reparar existe a variavel $id sim, esta aki:

 

"<img onmouseover=\"$id.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>";

 

 

 

Preciso que ela se incremente juntamente para ficar igual ao "name" da imagem acima.

 

 

Vlw pela atençao.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o $id++ no final do while...

$id = 0;
while($arand = mysql_fetch_array($rrand))
       {                   
           $id = $name++;

           $im_array = explode("|", $arand[imagem]);

               $Imagem = "<img src=\"produtos/$im_array[0]\" width=130 height=160 class=imagem name=$id>";

               if($im_array[1]){

                  $mudar_foto = "<img onmouseover=\"$id.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>";


               }
         $id++;

       }

 

Mais ou menos isto.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah, pensei que queria usar $id na própria condição (entre parênteses).

 

 

Você pode fazer o que quer de diversas formas:

 

               if($im_array[1]){

                   $id++;
                   $mudar_foto = "<img onmouseover=\"$id.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>";


               }

 

ou

 

               if($im_array[1]){

                   id_tmp = $id + 1;
                   $mudar_foto = "<img onmouseover=\"$id_tmp.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>";


               }

 

esta segunda forma não altera o valor da variável $id.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, fiz uma pequena modificação que resulta na mesma coisa:

 

$id = z;	
	
	while($arand = mysql_fetch_array($rrand))
	{		    
	    $id++;
	
	    $im_array = explode("|", $arand['imagem']);
		
		$Imagem = "<img src=\"produtos/$im_array[0]\" width=130 height=160 class=imagem name=$id>";
		
		if(isset($im_array['1'])){
	
                $mudar_foto = "<img onmouseover=\"$id.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>";

                }
}

 

Fiz oque você me indicou Beraldo, mais não tive exito...

 

Primeiramente,

Pra que serve esse script?

tenho uma lista de 20 produtos, especificamente velas, declarados dentro do loop while, alguns deles possuem 2 fotos na tabela do banco de dados (acesas e apagadas).

Por isso existe a condição IF...se existir mais de 1 figura dentro do banco de dados, irá aparecer uma opção em formato jpg escrito, "velas acesas"...ao passar o mouse em cima desta opção, troque a imagem de apagadas, para acesas.

 

só que não estou conseguindo fazer com que o $id dentro do while corresponda com o mesmo $id dentro do if.

 

 

Vo posta o código fonte deste problema para melhor entendimento

vejam que o valor de "name" ~~ao bate com o onmouseover do produto:

 

//produto 1
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 177</div>
    <div><img src="produtos/1248981451_offer_1a.jpg" width=130 height=160 class=imagem name=aa></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="aa.src='produtos/1248981451_offer_1b.jpg';" onmouseout="aa.src='produtos/1248981451_offer_1a.jpg';" src="images/acesas.jpg"/></div>
  </div>

//produto 2
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 176</div>
    <div><img src="produtos/1248981416_offer_b.jpg" width=130 height=160 class=imagem name=ab></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="aa.src='produtos/1248981451_offer_1b.jpg';" onmouseout="aa.src='produtos/1248981451_offer_1a.jpg';" src="images/acesas.jpg"/></div>
  </div>

//produto 3
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 175</div>
    <div><img src="produtos/1248981391_offer_a.jpg" width=130 height=160 class=imagem name=ac></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="aa.src='produtos/1248981451_offer_1b.jpg';" onmouseout="aa.src='produtos/1248981451_offer_1a.jpg';" src="images/acesas.jpg"/></div>
  </div>

 

vejam que o $id é incrementado corretamente dentro do loop while, e no IF ele incrementa apenas 1 vez, mantendo o valor "aa" em todos os produtos.

 

 

 

Acho que agora da pra ter uma idéia melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tinha que aparecer??? Se o resultado de $i = z e você faz $id++, ele fica como $id = aa. Se fizer de novo, fica como $id = ab... e assim por diante...

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim Carlos, eu sei disso...

 

 

Mais o problema é que a variavel $id não está sendo incrementada dentro do IF.

 

 

 

Oque eu preciso é que o $id seja incrementado dentro do IF igual está sendo dentro do While

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tinha que aparecer???

Refaço a pergunta... o que tinha que aparecer?

 

Se você quer que a $id seja incrementada dentro do if, coloca o $id++ dentro do if...

 

Ou será que estou entendendo errado?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tinha que aparecer???

Refaço a pergunta... o que tinha que aparecer?

 

Se você quer que a $id seja incrementada dentro do if, coloca o $id++ dentro do if...

 

Ou será que estou entendendo errado?

 

Carlos Eduardo

 

 

Então Carlos, eu já havia feito isso, porém gera um erro.

 

pode me adicionar no msn? o.ozuna@hotmail.com

 

la posso te explicar melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode me adicionar no msn?

Não. Use o fórum para isto...

 

O que tinha que aparecer???

 

 

Refaço a pergunta... o que tinha que aparecer?

Pela terceira vez... o que tinha que aparecer?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu preciso que o valor da variavel $id, incrementado dentro do WHILE seja igual a variavel $id dentro do IF.

 

 

Me expressei melhor agora?

 

Obrigado,

Ozuna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu preciso que o valor da variavel $id, incrementado dentro do WHILE seja igual a variavel $id dentro do IF.

 

 

Me expressei melhor agora?

Não.

Executando o seu código, apareceu

<img onmouseover="aa.src='produtos/

O que você quer que apareça no lugar do aa? ab, ac, z, xpto???? Quem sabe assim entendo...

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exatamente Carlos...

 

Preciso que cada produto apareça um valor diferente aa, ab, ac, ad, ae..........

 

Nesse link abaixo está o código em prática

http://www.ateliedolar.com.br/arranjos.php

 

Dos 3 produtos na lista, apenas o primeiro contem 2 fotos no banco de dados.

E todos estão aparecendo o valor aa, preciso que seja:

 

produto 1 aa

produto 2 ab

produto 3 ac

e assim por diante

 

 

Consegue me ajudar?

 

 

Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim...

 

while($arand = mysql_fetch_array($rrand))
{                   
	$im_array = explode("|", $arand['imagem']);

	$Imagem = "<img src=\"produtos/$im_array[0]\" width=130 height=160 class=imagem name=$id>";

	if(isset($im_array['1']))
	{
		$id++;
		$mudar_foto = "<img onmouseover=\"$id.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>";

	}
	$id++;

}

Acho que agora entendi a lógica.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Intão Carlos,

 

Tentei da maneira que você disse mais a variavel $id dento do IF sempre mantem o mesmo valor, ela não se incrementa :(

 

Já tentei colocar o $id++ em várias posições dentro do código mais não adiantou.

 

 

 

O IF só está sendo executado uma vez, independente do while.

 

To ferrado? :P

 

 

Será que existe outra alternativa?

 

Muito Obrigado,

Ozuna

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leia os comentários dentro do código... Se eu entendi corretamente o que você precisa, está correto o código. Senão estiver correto, coloque um exemplo completo de como deveria ficar.

 

$id = 'aa';
while($arand = mysql_fetch_array($rrand))
{                   
       $im_array = explode("|", $arand['imagem']);

       $Imagem = "<img src=\"produtos/$im_array[0]\" width=130 height=160 class=imagem name=$id>";// este $id na primeira iteração do while vai ter valor 'aa'. 

       if(isset($im_array['1']))// isto testa se tem outra foto, certo? Se tiver outra foto, vai entrar aqui...
       {
               $id++;// neste momento a $id vai passar a ter valor 'ab' na primeira iteração do laço.
               $mudar_foto = "<img onmouseover=\"$id.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>"; // vai imprimir 'ab'

       }
       $id++;// aqui, se tiver entrado no if, vai trocar para 'ac'. Senão tiver entrado no if, vai ficar como 'ab'

}

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso existem 4 produtos, apenas o primeiro e o quarto possuem 2 fotos no banco de dados.

Segue o script completo desta página primeiro:

 

<?php

require_once("conn.php");

$qrand = "select * from produtos where subCategoriaID = '2' order by id desc";
$rrand = mysql_query($qrand) or die(mysql_error());

 if(mysql_num_rows($rrand) > '0')
{
	
	$Destaques = "<br /><div style=width:550px;display:block>";
	
	$id = aa;	
	
	while($arand = mysql_fetch_array($rrand))
	{		    
	    
	
	    $im_array = explode("|", $arand['imagem']);
		
	    $Imagem = "<img src=\"produtos/$im_array[0]\" width=130 height=160 class=imagem name=$id>";
		
	    if(isset($im_array['1'])){
	        $id++;
                $mudar_foto = "<img onmouseover=\"$id.src='produtos/$im_array[1]';\" onmouseout=\"$id.src='produtos/$im_array[0]';\" src=\"images/acesas.jpg\"/>";

            }	
	    
            $id++;

	    $Destaques .="
<div align=center class=destaque>
    <div class=referencia align=center> Referência: $arand[id]</div>
    <div>$Imagem</div>
    <div align=center class=texto>$arand[texto]</div>
	<div align=left>$mudar_foto</div>
  </div>";  
  

	}
	
	$Destaques .="</div>";
	
}
 
?>

 

Desta forma que você me passou Carlos, gera o seguinte código fonte:

 

<div style=width:550px;display:block>
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 178</div>
    <div><img src="produtos/1249303735_offer_2a.jpg" width=130 height=160 class=imagem name=aa></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="ab.src='produtos/1249303735_offer_2b.jpg';" onmouseout="ab.src='produtos/1249303735_offer_2a.jpg';" src="images/acesas.jpg"/></div>
  </div>
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 177</div>
    <div><img src="produtos/1248981451_offer_1a.jpg" width=130 height=160 class=imagem name=ac></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="ad.src='produtos/1248981451_offer_1b.jpg';" onmouseout="ad.src='produtos/1248981451_offer_1a.jpg';" src="images/acesas.jpg"/></div>
  </div>
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 176</div>
    <div><img src="produtos/1248981416_offer_b.jpg" width=130 height=160 class=imagem name=ae></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="ad.src='produtos/1248981451_offer_1b.jpg';" onmouseout="ad.src='produtos/1248981451_offer_1a.jpg';" src="images/acesas.jpg"/></div>
  </div>
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 175</div>
    <div><img src="produtos/1248981391_offer_a.jpg" width=130 height=160 class=imagem name=af></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="ad.src='produtos/1248981451_offer_1b.jpg';" onmouseout="ad.src='produtos/1248981451_offer_1a.jpg';" src="images/acesas.jpg"/></div>
  </div></div>

 

 

 

Agora o código precisa ser assim:

 

<div style=width:550px;display:block>
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 178</div>
    <div><img src="produtos/1249303735_offer_2a.jpg" width=130 height=160 class=imagem name=aa></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="aa.src='produtos/1249303735_offer_2b.jpg';" onmouseout="aa.src='produtos/1249303735_offer_2a.jpg';" src="images/acesas.jpg"/></div>
  </div>
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 177</div>
    <div><img src="produtos/1248981451_offer_1a.jpg" width=130 height=160 class=imagem name=ab></div>
    <div align=center class=texto>...</div>
  </div>
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 176</div>
    <div><img src="produtos/1248981416_offer_b.jpg" width=130 height=160 class=imagem name=ac></div>
    <div align=center class=texto>...</div>
  </div>
<div align=center class=destaque>
    <div class=referencia align=center> Referência: 175</div>
    <div><img src="produtos/1248981391_offer_a.jpg" width=130 height=160 class=imagem name=ad></div>
    <div align=center class=texto>...</div>
	<div align=left><img onmouseover="ad.src='produtos/1248981451_offer_1b.jpg';" onmouseout="ad.src='produtos/1248981451_offer_1a.jpg';" src="images/acesas.jpg"/></div>
  </div></div>

 

Vlw pela atenção,

Ozuna

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.