Ir para conteúdo
Fórum Script Brasil
  • 0

For Each não carrega o conteudo correto


Joao Claudio Vilanova

Pergunta

Pessoal, tenho um Model que faz a leitura através do modo Fullread em uma tabela. Na minha Home chamo o metodo através de um for each para carregar os dados do registro conforme o SELECT que criei. Porem, tenho dois cards, e gostaria que cada eles mostrassem os dados dos ultimos dois registros. Mas...os dois estao mostrando o mesmo registro, tanto o titulo quanto a imagem. Vi em algum lugar que ao invés do for each eu deveria usar um While, pore, não sei como fazer. 

Estou usando o segunte código: 

 <?php
                                                    foreach ($this->Dados['sts_artEnocu'] as $artigo) {
                                                        extract($artigo);
                                                ?>

Ai, faço a exibição conforme o que foi extraido da seguinte forma: 

<div class="col-md-4">
                                                                                <div class="card mw-100 shadow-sm rounded-0 card-1" style="background-image: url('<?php echo URL . 'assets/imagens/artigo/' . $imag; ?>'); width: 450px; height: 350px;">
                                                                                                        
                                                                                </div>  
                                                                                <div class="card-body">
                                                                                        <p class="card-text">Este é um card maior e que suporta texto abaixo, </p>
                                                                                        <div class="d-flex justify-content-between align-items-center">
                                                                                                <div class="btn-group">
                                                                                                        <button type="button" class="btn btn-sm btn-outline-secondary">Ver</button>
                                                                                                        <button type="button" class="btn btn-sm btn-outline-secondary">Editar</button>
                                                                                                </div>
                                                                                                <small class="text-muted">9 mins</small>
                                                                                        </div>
                                                                                </div>
                                                                                                
                                                                            </div>

                                                                            <div class="col-md-4">
                                                                                <div class="card mw-100 shadow-sm card-2" style="background-image: url('<?php echo URL . 'assets/imagens/artigo/' . $imag; ?>'); width: 450px; height: 350px;">
                                                                                                
                                                                                </div>  
                                                                                <div class="card-body">
                                                                                        <p class="card-text">Este é um card maior e que suporta texto abaixo, </p>
                                                                                        <div class="d-flex justify-content-between align-items-center">
                                                                                                    <div class="btn-group">
                                                                                                        <button type="button" class="btn btn-sm btn-outline-secondary">Ver</button>
                                                                                                        <button type="button" class="btn btn-sm btn-outline-secondary">Editar</button>
                                                                                                    </div>
                                                                                                    <small class="text-muted">9 mins</small>
                                                                                        </div>
                                                                                </div>
                                                                                                
                                                                            </div>
                                                                  
                                                                  

alguém pode me ajudar ?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Eu também sou novato no PHP, mas hoje eu aprendi a criar um vetor com o banco de dados com esse código:

<?php
$mysqli=new mysqli("localhost","root","","diario");
$query=$mysqli->query("select prod from tbprod limit 10");
$dados = $query->fetch_all(MYSQLI_ASSOC);  // $dados é um vetor com todos os registros
foreach ($dados as $dados) {              
	echo $dados['prod']."<br>"; }
mysqli_close($mysqli);
?>

Não sei como você usa a variável "this->" no seu código, eu ainda não usei isso no PHP, eu só vi no JavaScript, mas também não tenho a menor ideia de como usar.

Para eu conseguir os dez primeiros produtos com o método while, eu faço assim:

 

<?php
$mysqli=new mysqli("localhost","root","","diario");
$query=$mysqli->query("select prod from tbprod limit 10");
while ($dados=$query->fetch_assoc()) { // $dados é um vetor com um registro
	echo $dados['prod']."<br>"; }
mysqli_close($mysqli);
?>

Ou seja, a diferença entre foreach e while é o conteúdo do vetor, o primeiro presume que todos os registros estão no vetor e outro apenas um registro.

Eu sei que não ajudei muito, mas quero agradecer por você compartilhar a sua dúvida, no seu código eu vi 

echo URL . 'assets/imagens/artigo/' . $imag

eu acredito que $imag é uma variável definida pela função "extract" que aparece no seu código. Aconselho a estudar a função "extract" e verificar se ele está criando o arquivo que você deseja.

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0
21 horas atrás, Joao Claudio Vilanova disse:
foreach ($this->Dados['sts_artEnocu'] as $artigo) {
                                                        extract($artigo);

É preciso saber qual é o conteúdo de $artigo pra saber quais variáveis o extract criou

Link para o comentário
Compartilhar em outros sites

  • 0

Dei um var_dump na variavel artigo e ele me retornou um unico artigo,

array(9) { ["id"]=> string(1) "4" ["tit"]=> string(19) "A boa e velha rolha" ["descri"]=> string(1) "4" ["imag"]=> string(13) "vinho5555.jpg" ["slug"]=> string(18) "sample-blog-post-4" ["author"]=> string(5) "Celke" ["resumo"]=> string(175) ", 

como eu disse, gostaria que ele me retornasse e fosse montando o card de acordo com o que fosse encontrando, até que o LIMIT colocado na Query fosse atingido

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, Joao Claudio Vilanova disse:

array(9)

Perfeito!
$artigo tem conteúdo e o extract está funcionando!

Agora é só alimentar o card(dentro do foreach) com essas variáveis

2 horas atrás, Joao Claudio Vilanova disse:

tit

$tit no lugar do título
$imag no lugar da imagem

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...