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

Problema com loop dentro de loop


viejoyo

Pergunta

Fala pessoal, to tentando fazer um esquema aqui e não entendo o porque não da certo, ...

O que eu to querendo fazer se resume nisso:

Tenho um calendário, e no bd é setado dias de evento de um mês, o que acontece então é que na exibição desse calendário os dias que terão eventos ficam como links que levarão à página desse evento ..

O que não está funcionando é o loop que eu faço pra linkar esses dias, exemplo se no calendário está marcado evento dia 17,18, so aparece linkado o dia 17, vo postar p código comentando o loop dentro do loop que não da certo :P

<?php 
... 

$k = 1;
for ($i = 1; $i <= 6; $i++) {
    echo "<div>";
    for ($j = 0; $j < 7; $j++) {
        $dias = date("w", mktime(0, 0, 0, $mes, $k, $ano));
        if($dias == $j and $k <= $total_dias) {
        
        $sql = "select * from evento_data where mes = '".$mes."' and ano = '".$ano."' and dia >= '".$dia."' order by dia desc";//
        $exe = mysql_query($sql,$conexao);
        for ($y = 0;$y < mysql_num_rows($exe);$y++) {       //esse é o loop que não funciona 
        $c = mysql_fetch_array($exe);
        
        if ($c['dia'] == $k) {
        $href = "<a href = \"teste.php\">";
        $hreff = "</a>";
        } else {
        $href = "";
        $hreff = "";
        }
        }      // aqui termina
                        
     if($k == $dia) { 
                echo "<span class=\"destaque\">". $href . sprintf("%02d", $k) . $hreff ."</span> ";
            } else {    
                echo "<span class=\"linhas\">". $href . sprintf("%02d", $k) . $hreff."</span> ";
            } 
               
            $k++;
        } else {
            echo "<span class=\"linhas\">".str_repeat("&nbsp;", 4)."</span> ";
        }
    }
    echo "</div>\n";    
}

?>

Eu não vejo a lógica de porque ele sempre pega so um evento no bd e compara com a variável $k, alguém tem idéia ?

Editado por viejoyo
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Entedi o que você falou cara, mas testei aqui e não deu certo, tentei assim, primeiro fiz o loop fora desse loop do calendario e dentro desse loop:

$sql = "select * from evento_data where mes = '".$mes."' and ano = '".$ano."' and dia > '".$dia."' order by dia desc";
         $exe = mysql_query($sql,$conexao);
         while ($c = mysql_fetch_array($exe)) {
         $array_days = $c['dia'];
  
         }

dentro do loop :
    
    if (in_array($k, $array_days)) {
     echo "<span class=\"linhas\"><a href = \"teste.php\">" . sprintf("%02d", $k) . "</a></span> ";
     }

Ai aparece esse erro:

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/site_teste/public_html/evento_data.php on line 98

Não entendo porque meu argumento possa estar errado, o que eu ainda to fazendo de errado ?

Editado por viejoyo
Link para o comentário
Compartilhar em outros sites

  • 0

Tá, e me diz uma coisa, onde está o array ali? Porque $array_days não é um array, vocâ apenas atribui um valor para uma variável... para criar um array ao invez de:

$array_days = $c['dia'];

O correto seria:

$array_days[] = $c['dia'];

Link para o comentário
Compartilhar em outros sites

  • 0

Eu ia postar outro tópico, mais como é sobre ese mesmo assunto minha dúvida resolvi postar aqui mesmo, é o seguinte no loop acima:

if (in_array($k, $array_days)) {
     echo "<span class=\"linhas\"><a href = \"teste.php\">" . sprintf("%02d", $k) . "</a></span> ";
     }
.. eu coloco link nos dias cadastrados no bd, como esse calendário é um pop-up, ele carrega a página pai ao ser clicado no link, minha dúvida é de como pegar o dia atual, exemplo: se no bd temos os dias 26/09, 27/09, mesmo eu clicando no 27/09 ele sempre pega o 26, eu fiz assim ias nã deu certo:
$hidden = "<input type = \"hidden\" id = \"data\" value = \" ".$k."/" .$mes. "/" .$ano. "\">";

Como eu poderia resolver isso ..

Muito obrigado !!

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...