Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou com um problema de raciocínio lógico envolvendo laços no PHP.
Esse projeto vai me servir para arquitetar melhor a apresentação do meu layout.
Exemplificando: Preciso que o codigo imprima 3 elementos, e 1 desses 3 elementos exibir um div maior, e assim respectivamente...
Exemplo
(GRANDE - pequeno - pequeno) - (GRANDE - pequeno - pequeno) ... (e assim vai)
tipo, a cada 3 elementos pular para o outro respeitando a mesma ordem...
Só preciso de um código de raciocínio que podem ser fácil pra vocês, mas está me dando uma dor de cabeça! rs
Até o momento tenho as seguintes linhas
<?php
$visi = 0;
$notVisi = $conexaoDB->query("SELECT * FROM postagens WHERE slug_category != 'critica' AND slug_category != 'trailer' AND online='online' ORDER BY id DESC LIMIT 20");
while($vis = $notVisi->fetch_array()){
$visi = $visi+3;
?>
<?php } ?>
dai não consigo sair.
Agradeço desde já!Isso mesmo, só que não estou conseguindo aplica-lo ao código de chamada dos registros....
tipo, o que está sendo exibido é
John Boyega estampa novas imagens de Círculo de Fogo: A Revolta
John Boyega estampa novas imagens de Círculo de Fogo: A Revolta
John Boyega estampa novas imagens de Círculo de Fogo: A Revolta
Super Fly: Atores de American Crime e Straight Outta Compton são escalados como protagonistas do remake
Super Fly: Atores de American Crime e Straight Outta Compton são escalados como protagonistas do remake
Super Fly: Atores de American Crime e Straight Outta Compton são escalados como protagonistas do remake
Jessica Chastain e Octavia Spencer vão reprisar parceria de Histórias Cruzadas em nova comédia
Jessica Chastain e Octavia Spencer vão reprisar parceria de Histórias Cruzadas em nova comédia
Jessica Chastain e Octavia Spencer vão reprisar parceria de Histórias Cruzadas em nova comédia
Zac Efron vive o serial killer mais famoso dos EUA
Zac Efron vive o serial killer mais famoso dos EUA
Zac Efron vive o serial killer mais famoso dos EUA
Voldemort - Origins of the Heir
Voldemort - Origins of the Heir
Voldemort - Origins of the Heir
Soldado Invernal, diz que Hugh Jackman pode voltar
Soldado Invernal, diz que Hugh Jackman pode voltar
Soldado Invernal, diz que Hugh Jackman pode voltar
O Touro Ferdinando Conheça o curta-metragem
O Touro Ferdinando Conheça o curta-metragem
O Touro Ferdinando Conheça o curta-metragem
<?php
$visi = 0;
$notVisi = $conexaoDB->query("SELECT * FROM postagens WHERE slug_category != 'critica' AND slug_category != 'trailer' AND online='online' ORDER BY id DESC LIMIT 20");
while($vis = $notVisi->fetch_array()){
$numero = $visi+1;
foreach(range( 1, 3 ) as $numero ) {
$divisivel_por_3 = $numero % 3 === 0;
if ( $divisivel_por_3 )
echo $vis["titulo"];
else
echo $vis["titulo"];
echo '<br>';
}
?>
<?php } ?>foreach(range( 1, 3 ) as $numero ) {
Isso não é necessário. Foi apenas um código que fiz para simular um loop, mas o loop você já tem com o while.
O que eu quis dizer é que você precisa de um número que represente a volta do loop. Você pode fazer assim:
1 - Antes do while:
$volta = 0;
2 - Aumentar o número da volta e criar a variável que informa se é divisível ou não por 3, **dentro do while (no início dele)**:
$divisivel_por_3 = $volta++ % 3 === 0;
Agora é só usar a variável em seu favor.Super entendi kkk. estava me passando... desde já MUITO OBRIGADO, ME AJUDOU MUITO.
@Mark Augusto, tinha marcado esse tópico como resolvido, pois pela sua resposta imaginei que você tivesse conseguido resolver o problema.
Vou fechar o outro tópico que você criou, pois é uma duplicação desse, e remover o "[Resolvido]" desse aqui...
Prosseguindo com a sua dúvida:
foreach(range( 1, 3 ) as $numero ) {
Você está mantendo esse trecho no seu código. Como eu disse no meu post anterior, ele foi apenas para criar o exemplo.
Você pode remover esse foreach do seu código. É ele que está replicando as linhas.
As duas linhas com a variável $volta são suficientes para você fazer o que você quer, pois agora você tem a variável $divisivel_por_3, entendeu?
Essa variável será verdadeira quando estiver em voltas divisíveis por 3 (a 0, 3, 6, 9, 12...). E assim você pode aplicar a lógica que você quiser nessas voltas específicas.
Não tem problema você não entender... só não quero postar o código mastigado. Tente entender a lógica e pergunte quantas vezes forem necessárias.
Eu me sentir tão burro agora.... Mais que resolvido... Muito Obrigado! Agora foi.... VLW MESMO!!! e desculpe minha ingenuidade.
Você quer aplicar uma regra a cada 3 registros iterados, é isso?
Se eu acertei, você precisa basicamente de uma variável que abstrai essa lógica, o resto é simples. Veja:
<?php
foreach( range( 0, 25 ) as $numero ) {
Resultado:
0 - GRANDE
1 - pequeno
2 - pequeno
3 - GRANDE
4 - pequeno
5 - pequeno
6 - GRANDE
7 - pequeno
8 - pequeno
9 - GRANDE
10 - pequeno
11 - pequeno
12 - GRANDE
13 - pequeno
14 - pequeno
15 - GRANDE
16 - pequeno
17 - pequeno
18 - GRANDE
19 - pequeno
20 - pequeno
21 - GRANDE
22 - pequeno
23 - pequeno
24 - GRANDE
25 - pequeno
Mas como você quer apenas estilizar, eu não faria com o PHP... o CSS poderia resolver facilmente isso para você.