Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Danilo Pessoa

[Resolvido] foreach

Recommended Posts

Boa tarde Pessoal!

 

Por favor, preciso de uma ajuda pra solucionar um problema que aparenta ser simples, mas não estou conseguindo resolver.

 

Tenho o um foreach que tras 4 linhas de informações do meu mysql só que eu preciso que o foreach imprima de duas em duas linhas e não uma por vez, segue meu trecho de código:

$this->autores = $model->getAutores ($params);
echo "<h3>Nossos Especialistas</h3>";
echo "<table border=0><tr><table  cellspadding=5 border=0>";
foreach ($this->autores as $aut){
echo "<tr><td>
      <img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
<br> $aut->minicurriculo </td>";
echo "<td>
      <img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
<br> $aut->minicurriculo </td>";
echo "</tr>";
}
echo "</table>";

 

 

Como podem ver eu imprimo duas colunas da minha tablela em cada passagem do foreach, a mesma linha de registro do BD, como faço para que ele imprima a cada passagem 2 registros do array?

 

Quem puder ajudar fico muito grato.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use um for com passo 2:

for($i = 0; $i < count($this->autores); $i+=2) {
echo "<tr><td>
      <img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
       <br> $this->autores[$i]->minicurriculo </td>";
echo "<td>
      <img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
       <br> $this->autores[$i+1]->minicurriculo </td>";
echo "</tr>";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! Vou fazer o teste.

 

Obrigado!

 

 

Use um for com passo 2:

for($i = 0; $i < count($this->autores); $i+=2) {
echo "<tr><td>
  	<img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
       <br> $this->autores[$i]->minicurriculo </td>";
echo "<td>
  	<img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
       <br> $this->autores[$i+1]->minicurriculo </td>";
echo "</tr>";
}

 

 

 

 

Não deu certo Henrique Barcelos!

 

O que funcionava parou de vez de funcionar, não há nenhuma técnica que eu possa usar dentro do foreach para que ele não imprima pra eu a mesma informação nas dusa colunas?

 

Eu reformulei o código, segue a baixo para melhor entendimento:

$this->autores = $model->getAutores ($params);
echo "<h3>Nossos Especialistas</h3>";
echo "<table cellpadding=5 border=0>";
foreach ($this->autores as $aut){
echo "<tr>";
echo "<td><p><img align=left src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id /></p><p> $aut->titulacao $aut->nomeconhecido $aut->sobrenome</p><p> $aut->minicurriculo </p></td>";
echo "<td><p><img align=left src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id /></p><p> $aut->titulacao $aut->nomeconhecido $aut->sobrenome</p><p> $aut->minicurriculo</p> </td>";
echo "<tr>";
}
echo "</table>";

 

Obrigado pelo suporte.

 

Abraço!

 

 

 

 

Use um for com passo 2:

for($i = 0; $i < count($this->autores); $i+=2) {
echo "<tr><td>
  	<img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
       <br> $this->autores[$i]->minicurriculo </td>";
echo "<td>
  	<img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
       <br> $this->autores[$i+1]->minicurriculo </td>";
echo "</tr>";
}

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue:

$this->autores = $model->getAutores ($params);
echo "<h3>Nossos Especialistas</h3>";
echo "<table border=0><tr><table  cellspadding=5 border=0><tr>";
foreach ($this->autores as $chave => $aut){
if(($chave%2)==0 && $chave > 0)
echo "</tr><tr>";
echo "<td>
      <img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
       <br> $aut->minicurriculo </td>";
}
echo "</tr></table>";

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! Obrigado pela ajuda jhrhp!

 

Mas me parece que falta alguma coisa pra fechar esse IF, onde eu devo finalizar?

Veja como está o código atualizado após sua sugestão:

$this->autores = $model->getAutores ($params);
echo "<h3>Nossos Especialistas</h3>";
echo "<table cellpadding=5 border=0>";
foreach ($this->autores as $chave => $aut){
if(($chave%2)==0 && $chave > 0)
echo "<tr style='background: #006C85; color: #FFFFFF;'>";
echo "<td><p><img align=left src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id /></p><p> $aut->titulacao $aut->nomeconhecido $aut->sobrenome</p><p> $aut->minicurriculo </p></td>";
echo "<td><p><img align=left src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id /></p><p> $aut->titulacao $aut->nomeconhecido $aut->sobrenome</p><p> $aut->minicurriculo</p> </td>";
echo "<tr>";
}
echo "</table>";

 

 

Segue:

$this->autores = $model->getAutores ($params);
echo "<h3>Nossos Especialistas</h3>";
echo "<table border=0><tr><table  cellspadding=5 border=0><tr>";
foreach ($this->autores as $chave => $aut){
if(($chave%2)==0 && $chave > 0)
echo "</tr><tr>";
echo "<td>
  	<img src=index.php?option=com_matricula&view=image&tmpl=raw&id=$aut->avatar_id width=167 height=178/> $aut->titulacao $aut->nomeconhecido $aut->sobrenome 
       <br> $aut->minicurriculo </td>";
}
echo "</tr></table>";

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa abrir nem fechar o IF, pois assim ele assume a linha logo abaixo.

 

E também você não copiou o código corretamente, existem vários lugares que esta diferente, o que não daria o resultado esperado.

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

Agora funcionou!

 

Obrigado jhrhp!

 

Abraço!

 

Não precisa abrir nem fechar o IF, pois assim ele assume a linha logo abaixo.

 

E também você não copiou o código corretamente, existem vários lugares que esta diferente, o que não daria o resultado esperado.

 

Até mais.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.