ozuna 0 Denunciar post Postado Julho 30, 2009 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
Beraldo 864 Denunciar post Postado Julho 30, 2009 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
ozuna 0 Denunciar post Postado Julho 30, 2009 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
Matias Rezende 50 Denunciar post Postado Julho 30, 2009 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
Beraldo 864 Denunciar post Postado Julho 30, 2009 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
ozuna 0 Denunciar post Postado Julho 31, 2009 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
Matias Rezende 50 Denunciar post Postado Julho 31, 2009 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
ozuna 0 Denunciar post Postado Julho 31, 2009 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
Matias Rezende 50 Denunciar post Postado Julho 31, 2009 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
ozuna 0 Denunciar post Postado Julho 31, 2009 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
Matias Rezende 50 Denunciar post Postado Julho 31, 2009 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
ozuna 0 Denunciar post Postado Julho 31, 2009 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
Matias Rezende 50 Denunciar post Postado Julho 31, 2009 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
ozuna 0 Denunciar post Postado Agosto 1, 2009 É 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
Matias Rezende 50 Denunciar post Postado Agosto 1, 2009 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
ozuna 0 Denunciar post Postado Agosto 2, 2009 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
Matias Rezende 50 Denunciar post Postado Agosto 2, 2009 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
ozuna 0 Denunciar post Postado Agosto 3, 2009 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