tubadc 0 Denunciar post Postado Dezembro 12, 2007 Olá, Estou desenvolvendo algo semelhante a um bbcode porém com tags personalizadas devido a necessidade do meu cliente em cadastrar ícones no sistema, para quando eles serem impressos mostrar a respectiva imagem...então fiz o seguinte... Criei uma tabela simples no MySQL com os campos idicone | nome | sigla | imagem Através do formulário meu cliente cadastra od dados nela por exemplo uma cor... idicone | nome | sigla | imagem 1 |branco | {b} | branco.jpg O qual irá aprecer no cadastro de produtos para ele inserir como se fosse um bbcode, ao clicar ele insere no campo de texto a tag {b} por exemplo.... Agora vem minha dúvida... preciso fazer a consulta no banco para transformar todas as tags no conteúdo gravado na descrição do produto pela imagem respectiva da sigla... Como faço esse loop? basicamente teria que retornar com um SELECT todos os icones com sigla e imagem e subtstituir toda vez que encotra-se a sigla na descrição pela imagem correspondete... sakaram? Alguem pode me dar um exemplo de como fazer esse foreach e o prg_replace ... OBrigado Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 12, 2007 Você pode fazer esse SELECT e colocar os resultados em dois arrays: um com os valores iniciais; outro com os valores pelos quais os iniciais deverão ser alterados. Esses arrays poderão ser usados em str_replace() ou preg_replace(). Na documentação dessas funções, há exemplos, inclusive, com o uso de arrays. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Dezembro 12, 2007 Obrigado pela ajuda... fiz mais ou menos isso ... o problema é que agora ele troca tudo... retorna os icones mas não retorna o conteudo.. require_once "griadm/includes/_conectabd.php"; //---Tratamento do Custo de Mana e Descrição function trocarSiglas($campo) { $sql_icones=mysql_query("SELECT * FROM icones")or die(mysql_error()); while( $linha_i=mysql_fetch_array($sql_icones)){ $sigla_i=$linha_i["sigla"]; $icone_i=$linha_i["iconeP"]; $campo=str_replace($sigla_i,$icone_i." ",$campo); $campo=explode(" ", $campo); foreach ($campo as $value) { echo "<img src='images/icones/p/".$value."'>"; } } } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 12, 2007 Eu pensei em algo assim: supondo um filtro de palavras. Considere uma tabela com os campos anterior (a palavra antes de passar pelo filtro) e nova (palavra filtrada) PHP $anterior = array();$nova = array(); $sql = consulta SELECT while (fetch()) { $anterior[] = $fetck['anterior']; $nova[] = $fetch['noav']; } //aqui você chama str_replace() ou preg_replace(), usando $anterior 4 $nova nos dois primeiros argumentos. Dessa forma, as suabtituições são feitas todas de uma vez. Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Dezembro 12, 2007 obrigado .... consegui assim... <? require_once "griadm/includes/_conectabd.php"; //---Tratamento do Custo de Mana e Descrição function trocarSiglas($campo) { $anterior = array(); $nova = array(); $sql_icones=mysql_query("SELECT * FROM icones")or die(mysql_error()); while( $linha_i=mysql_fetch_array($sql_icones)){ $anterior[]=$linha_i["sigla"]; $nova[]=$linha_i["iconeP"]; foreach($nova as $value) { $campo=str_replace($anterior,"<img src='images/icones/p/".$value."'> ",$campo); } } echo $campo; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Dezembro 12, 2007 achei que tinha resolvido mas não foi não... tentei adicionar outros icones diferentes ele trás apenas o primeiro ícone e transforma os outros pro mesmo valor... transformando todos os ícones no mesmo... sabe porque? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 12, 2007 Tente assim: PHP <?require_once "griadm/includes/_conectabd.php"; //---Tratamento do Custo de Mana e Descrição function trocarSiglas($campo) { $anterior = array(); $nova = array(); $sql_icones=mysql_query("SELECT * FROM icones")or die(mysql_error()); while( $linha_i=mysql_fetch_array($sql_icones)){ $anterior[]=$linha_i["sigla"]; $nova[]=$linha_i["iconeP"]; } $campo = str_replace($anterior, $nova, $campo); echo $campo; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Dezembro 12, 2007 ele retorna tudo amontado e somente os nomes das imagens thumb_1197466350.gifthumb_1197396916.gifthumb_1197396916.gif quanto faço $campo = str_replace($anterior, "<img src='images/icones/p/".$nova." '>", $campo); ele chama as imagesn assim images/icones/p/Array Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 12, 2007 Faça o seguinte: troque esta linha: PHP $nova[]=$linha_i["iconeP"]; por esta, colocando o caminho completo da imagem: PHP $nova[] = "<img src='images/icones/p/".$linha_i["iconeP"] . "' alt='' />"; OBS: Isso é dentro do loop while. Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Dezembro 12, 2007 Grraaande Beraldo ! Vlw por mais essa heim... fico lhe devendo... Compartilhar este post Link para o post Compartilhar em outros sites
Buxexa 0 Denunciar post Postado Dezembro 22, 2007 Pegando o embalo do tópico e do natal! http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif Hehehhe... Assim, eu tenho um campo "TEXT" sendo que nele se encontra: Texto bla bla bla bla segue a imagem abaixo: #imagem1# Continuação do texto bla bla bla Nessa mesma tabela eu tenho 3 campos de imagem imagem1 imagem2 imagem3. Gostaria de que quando fosse colocado no texto #imagem1# ou #imagem2# ou #imagem3# fosse retornado a imagem que coloquei nessa tabela. Acho que tem que ser alguma coisa como explode, mas não sei muito bem, gostaria de uma luz. Abraços, Leonardo Compartilhar este post Link para o post Compartilhar em outros sites
Buxexa 0 Denunciar post Postado Dezembro 22, 2007 Desculpe a ignorância galera, já está resolvidíssimo. $Img1 = "<img src=\"imagens/qr/".$rowQ['questaoImg1']."\" alt=\"Imagem1\" />"; $Img2 = "<img src=\"imagens/qr/".$rowQ['questaoImg2']."\" alt=\"Imagem2\" />"; $Img3 = "<img src=\"imagens/qr/".$rowQ['questaoImg3']."\" alt=\"Imagem3\" />"; $bbenunciado = $rowQ['questaoEnunciado']; $bbimagens = array("#questaoImg1#", "#questaoImg2#", "#questaoImg3#"); $imagens = array($Img1, $Img2, $Img3); $enunciado = str_replace($bbimagens, $imagens, $bbenunciado); Abraços, Leonardo Compartilhar este post Link para o post Compartilhar em outros sites