0

Não retorna resultado da variável PHP no link

criado por Webster Moitinho em 28/10/2010 5:31pm
Olá a todos!

Tenho uma página PHP que que faz uma consulta ao MySQL, cujo resultado do campo possui um link com um código PHP embedado. Até aí, morreu o Neves. Só que na hora de carregar a página, ao invés do link ir para indexp.php?id=1 aparece index.php?id=<?php echo $id ?>

Salvei com a extensão certa, o Apache está funcionando em outras páginas. O único diferencial é que uma página faz uma query, em cujo resultado resulta numa outra query. Ex:

Arquivo index tem uma query assim:

<?php


$busca0_query = mysql_query("SELECT normas.id_norma, normas.codnorma, normas.dtnrm, normas.descrnorma, normas.norma
FROM normas
WHERE normas.id_norma = $id")or die(mysql_error());

if (empty($busca0_query)) {

echo "Nenhum registro encontrado.";

}

while ($dados0 = mysql_fetch_array($busca0_query)) {

echo "$dados0[norma]";
}
?>


O resultado do campo "norma" seria um código php aonde o resultado da query compõe o link para a página. Exemplo:

<p align="justify">Estes relat&oacute;rios ser&atilde;o arquivados conforme norma <a href="index.php?id_funcao=<?php echo $trab; ?>&id=16" title="Padronizacao de documentos" target="_blank" class="sde_bclink_01">NOR-ADM-001</a>

Aonde será que eu estou errando?

Lista de Respostas:

+1
Resposta Final (Undo)
29/10/2010 3:09pm
(~7 anos atrás)
BOZO respondeu:
Isso acontece pq o que vc ta recuperando no DB é uma string, e quando printa ela será mostrada como uma string.

Provavelmente existe alguma forma mais eficaz de realizar o que vc quer...
Colocando por exemplo "%TRAB" no lugar de "<?php echo $trab; ?>" e no codigo trocar o %TRAB pela variavel $trab, usando expressão regular...

Outra forma, seria usar a função eval.
Mas neste caso vc terá que salvar o conteúdo exatamente como um código php, se tags, ex:


$trab = "NADA";

$var = "echo '<p align=\"justify\">Estes relat&oacute;rios ser&atilde;o arquivados conforme norma <a href=\"index.php?id_funcao=$trab&id=16\" title=\"Padronizacao de documentos\" target=\"_blank\" class=\"sde_bclink_01\">NOR-ADM-001</a>';";

eval($var);

0
29/10/2010 3:11pm
(~7 anos atrás)
BOZO respondeu:
Só completando...

Procure ver se é realmente necessário salvar este codigo no DB, provavelmente existe alguma forma mais facil de fazer o que vc quer, usando expressão regular por exemplo.

Se tiver alguma duvida, poste sua situação no fórum!

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)