Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema estranho ao passar dados para variável.

Estou fazendo uma página em PHP buscando dados no banco MySQL. O problema é que duas variáveis retornam do Banco com o text normalmente (testei usando a função print_r($array)), mas na hora que são passadas para as variáveis locais

$descricao = $banner ['descricao'];
$legenda = $banner ['legenda'];

retornam apenas 'e'. Não tenho idéia porquê, pois os outros textos do vetor $titulo e $nome estão ok.

Segue o código que busca os dados:

banco-test.php

<?php
$conexao = mysqli_connect('localhost', 'root', '', 'site-pipolino');

function consultaSQL ($conexao, $query) {
    $consulta = array ();

    $resultado = mysqli_query($conexao, $query);

    while ($tupla = mysqli_fetch_assoc($resultado)) {
        array_push($consulta, $tupla);
    }

    return $consulta;
}

function consultaUnicaTupla ($conexao, $query) {
    $consulta = array ();

    $resultado = mysqli_query($conexao, $query);

    $tupla = mysqli_fetch_assoc($resultado);
    return $tupla;
}

function getArtigo ($conexao, $artigo_id) {
    $query = "SELECT * FROM artigos WHERE artigo_id = {$artigo_id}";
    return consultaUnicaTupla($conexao, $query);
}

function getBanner ($conexao, $banner_id) {
    $query = "SELECT * FROM banners WHERE banner_id = {$banner_id}";
    return consultaUnicaTupla($conexao, $query);
}

function listaTodosArtigos ($conexao) {
    $query = "SELECT * FROM artigos";
    return consultaSQL($conexao, $query);
}

function listaTodasTags ($conexao) {
    $query = "SELECT * FROM tags";
    return consultaSQL($conexao, $query);
}

function listaImagensArtigo ($conexao, $artigo_id) {
    $query = "SELECT * FROM imagens WHERE artigo_id = {$artigo_id}";
    return consultaSQL($conexao, $query);
}

E agora a página test.php

<?php
include ("banco-test.php");

if (isset($_GET ['artigo_id'])) {
    $artigo = getArtigo($conexao, $_GET ['artigo_id']);
    $banner = getBanner($conexao, $artigo ['artigo_id']);
} else {
    $artigo = getArtigo($conexao, 1);
    $banner = getBanner($conexao, 1);
}

$titulo = $artigo ['titulo'];
$banner = $banner ['nome'];
$descricao = $banner ['descricao'];
$legenda = $banner ['legenda'];
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Pipolino Indústria e Comércio</title>
<link rel="stylesheet" href="css/reset.css" type="text/css" />
<link rel="stylesheet" href="css/estilo_final.css" type="text/css" />
<link
    href='http://fonts.googleapis.com/css?family=Open+Sans:400,700,800'
    rel='stylesheet' type='text/css' />
</head>
<body>
    <div id="container">

        <header id="cabecalho">

            <div id="logo">
                <a href="index.php"> <img src="images/logo-gold.png" width="100%"
                    height="100%" alt="Logo Pipolino Gold" />
                </a>
            </div>


            <!-- ### MENU - INICIO ###  -->

            <nav id="menu">
                <ul>
                    <li><a class="menu-option" href="index.php">Home</a></li>
                    <li><a class="menu-option" href="artigo.php?artigo_id=2">Empresa</a></li>
                    <li><a class="menu-option" href="produtos-lista.php">Nossos <br />
                            Produtos
                    </a></li>
                    <li><a class="menu-option" href="artigo.php">Dicas de Preparo <br />
                            e Armazenagem
                    </a></li>
                    <li><a class="menu-option" href="revendedores-lista.php">Nossos <br />
                            Revendedores
                    </a></li>
                    <li><a class="menu-option" href="contato.php">Contato </a></li>
                </ul>
            </nav>

            <!-- ### MENU - FIM ###  -->

        </header>


        <div id="conteudo">

            <div id="imagem">
                <img alt="<?=$descricao?>" src="images/banners/<?=$banner?>" />

                <h1 id='titulo'><?=$titulo?></h1>

                <p id='legenda'><?=$legenda?></p>
            </div>

            <?php echo $artigo ['conteudo']; ?>

            <div class='sub-container'>
                <div class='chamada'>
                    <a href="artigo.php"> <img
                        src="images\chamadas\armazenagem300x200.png" alt="descricao" /></a>
                    <h5>Lorem ipsum dolor sit amet</h5>
                    <p>
                        Lorem ipsum dolor sit amet, eum in natum iisque dissentiet. An
                        iisque inimicus signiferumque has. <a href="artigo.php">Leia mais</a>
                    </p>
                </div>
                <div class='chamada'>
                    <a href="artigo.php"> <img
                        src="images\chamadas\armazenagem300x200.png" alt="descricao" /></a>
                    <h5>Usu cu solet quaeque fierent</h5>
                    <p>
                        Usu cu solet quaeque fierent, te elitr libris sapientem vel. Mea
                        cu copiosae insolens percipitur, ex mea hinc zril graece. <a
                            href="artigo.php">Leia mais</a>
                    </p>
                </div>
                <div class='chamada'>
                    <a href="artigo.php"> <img
                        src="images\chamadas\armazenagem300x200.png" alt="descricao" /></a>
                    <h5>Eum ne splendide deseruisse</h5>
                    <p>
                        Eum ne splendide deseruisse scribentur, facete fabellas
                        consectetuer qui at, cu modo delenit principes duo. <a
                            href="artigo.php">Leia mais</a>
                    </p>
                </div>
            </div>

        </div>

        <footer id="rodape">
            <div id="estrelas">
                <br />
            </div>

            <div id="copyright">
                <span class="bold"> ©Pipolino Indústria e Comércio Ltda </span> -
                Todos os direitos reservados.

            </div>

            <div id="creditos">
                Desenvolvido por <span class="bold">::felipeandrade</span>
            </div>
        </footer>

    </div>

</body>
</html>
2 respostas
solução!

Olá Felipe, tudo bem?!

Creio que o problema seja porque você está substituindo a variável $banner na hora que está recuperando os valores. Veja a linha de código abaixo:

$banner = $banner ['nome'];

Quando você tenta pegar o restante dos parâmetros, ai os dados já foram substituídos:

$banner = $banner ['nome'];
$descricao = $banner ['descricao']; // Essa variável banner já se perdeu
$legenda = $banner ['legenda'];

Troque por outro nome ao invés de banner e veja se deu certo.

Fala Paulo, muito obrigado, não acredito que usei o mesmo nome nas duas variáveis rs. Agora que corrigi está funcionando, obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software