1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Mostrar página a certo dia

Discussão em 'Web Development' iniciada por Frango., 16 de Setembro de 2008. (Respostas: 16; Visualizações: 1081)

  1. Frango.

    Frango. Power Member

    Boas!

    Tenho uma página em PHP a mostrar uma certa programação semanal.. O que eu queria era por exemplo, na Terça-Feira mostrar logo a programação para Terça-Feira.

    Muito obrigado desde já.
     
  2. krunch

    krunch Power Member

    Vês qual a data de hoje - http://pt.php.net/date
    e com um switch mostras o conteudo que quiseres, por exemplo...

     
  3. MPalhas

    MPalhas Power Member

    o switch depende. se for para mostrar apenas 7 coisas diferentes (uma para cada dia da semana) então até pode ser.
    mas se quiseres coisas que variam todos os dias, mais vale teres esse dados na base de dados, e depois de verificares a data vais buscar o registo correspondente
     
  4. Frango.

    Frango. Power Member

    Última edição: 16 de Setembro de 2008
  5. MPalhas

    MPalhas Power Member

    mas não me esclareceste. a tua programação vai ser apenas 7 coisas diferentes (uma para cada dia da semana, sendo igual todas as semanas) ou cada dia vai ter sempre uma coisa diferente?

    para usar a função date:
    PHP:
    //aqui recebes um número entre 0 e 6, correspondente ao dia da semana
    $dia_semana date("w");

    //aqui o dia da semana por extenso
    $dia_semana_ext date("D");

    //aqui o dia do mês, entre 01, e 31
    $dia_mes date("d");

    //aqui a data completa, no formato DD-MM-YYYY
    $data date("d-m-Y");
    mais informação sobre outros tipos de formatação que podes usar para esta função (que como podes ver é completamente personalizáve), encontras aqui: http://pt2.php.net/date
     
  6. krunch

    krunch Power Member

    Tens os dados numa BD, certo?
    A tabela da programacao tem um campo com a data, certo?
    Só tens de fazer um select em que fazes um where com a data de hoje.
     
  7. Frango.

    Frango. Power Member

    Sim tenho uma "página" para cada dia. usei um código que usa várias páginas por exemplo:

    index.php?pagina=1

    e dentro do echo tá o conteúdo.

    Vai ser uma para cada dia da semana igual todas as semanas.

    Nota que não uso base de dados.


    -----------------------------------------------------

    Após umas pesquisas no google percebi que o PHP date serve para ver que dia é hoje e o switch é para mostrar o dia.. pronto é mais ou menos isso.. eu queria integrar essas "coisas" no meu site aqui está o meu código:

    Código:
    <?
    
    if (!$dia){
    
    echo "<a href='programacao.php'><u>Segunda</u></a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Aqui a programação"";
    
    } elseif ($dia=='terca'){
    
    echo "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'><u>Terça</u></a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Aqui a programação"";
    
    } elseif ($dia=='quarta'){
    
    echo "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'><u>Quarta</u></a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Aqui a programação"";
    
    } elseif ($dia=='quinta'){
    
    echo "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'><u>Quinta</u></a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Aqui a programação"";
    }
    
    elseif ($dia=='sexta'){
    
    echo "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'><u>Sexta</u></a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Aqui a programação"";
    }
    
    elseif ($dia=='sabado'){
    
    echo "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'><u>Sábado</u></a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Aqui a programação"";
    }
    
    elseif ($dia=='domingo'){
    
    echo "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'><u>Domingo</u></a><br/><br/>Aqui a programação";
    }
    
    ?>
    como integro?
     
    Última edição: 16 de Setembro de 2008
  8. MPalhas

    MPalhas Power Member

    então basta-te usar a primeira opção dos exemplos que eu dei. com isso recebes um número referente ao dia da semana (0 para Domingo, até 6 para Sábado), e fazes simplesmente isto:

    PHP:
    switch ($dia_semana) {
       case 
    0:
          
    //mostrar opções para Domingo
          
    break;

       case 
    1:
          
    //opções para Segunda
          
    break;

    //etc...

    }
    }
     
  9. naoliveira

    naoliveira Power Member

    Por acaso estou a fazer neste momento um script para o caso que referes, é para mostrar a ementa de um restaurante, como a ementa varia todas as semanas o que estou a fazer é:

    • numa página a pessoa introduz a ementa para a semana toda (no Domingo faz a ementa para a semana);
    • esta ementa é guardada num ficheiro em que cada linha corresponde ao dia da semana, a começar na 2ª-feira.
    • os diferentes pratos do dia são separados por ponto e virgula
    Para um caso destes não vale a pena usar base de dados.

    Para ler basta abrir o ficheiro para um array, separado pela quebra de linha e a seguir voltar a separar os items do dia que estão divididos pelo ;(ponto e virgula)

    A seguir tens as funções que uso

    grava os dados no ficheiro:

    PHP:
         /*
            $fileToWork    -> file to save the menu (plus password on 1st line)
            Return 0        -> problems working with file
            Return 1        -> ends Ok
            Return 2        -> date field not filled        
         */
        
    function saves_menu ($fileToWork,$arrToWrite) {
            
    $data             $_POST['data'];
            
    $dia_semana        $_POST['dia_semana'];
            
    $keePass        'TESTE';
            
    $msgCode        '';
            
    $strToWrite        '';
             
    //gets the password from the file
             
    $fr     fopen ($fileToWork,"r");
            if (!
    $fr) {
                
    $msgCode 0;
            } else {
                
    $keepPass fgets ($fr);
                
    fclose($fr);
                
    $strToWrite $keepPass;
                
    $strToWrite .= implode ("\n",$arrToWrite);
                
    $fr         fopen ($fileToWork"w");
                if (!
    $fr) {
                    
    fclose ($fr);
                    
    $msgCode 0;
                } else {
                    
    fwrite ($fr,$strToWrite);
                    
    fclose($fr);
                    
    $msgCode 1;
                } 
    // fr
            
    // filecontents        
            
    return $msgCode;
        } 
    // function
    vai buscar os dados no ficheiro e cria uma array separada por dia da semana
    PHP:
         // returns an array with the menu, or returns an error
        
    function get_menu ($fileToWork) {
            
    $file_content '';
            
    $fr fopen($fileToWork'r');
            if(!
    $fr) {
                return 
    0;
            } else {
                
    fclose ($fr);        
                
    $file_content file$fileToWork );
                unset (
    $file_content[0]); // removes the password field
            
    // fr
            
    return $file_content;
        } 
    // function
    mostra os itens separados pelo dia da semana
    PHP:
         // shows the menu in menu page (ementa.php)
        
    function Show_menu ($fileToWork){
             
    // array with menu for each
            
    $arr_menu         get_menu ($fileToWork);
            
    $menu_date        $arr_menu[1]; // gets the field with the week starting date (should indicate monday)
            
    $date_ok        date_validation ($menu_date); // checks if the date field as a valid  date on it
            
    unset ($arr_menu[1]); // leaves only the week days on array
            
    $arr_week = array('2ª Feira','3ª Feira','4ª Feira','5ª Feira''6ª Feira''Sábado');
            if (
    $date_ok ){
                
    $menu_date    str_replace ('-','/',$menu_date);
                
    $split_date explode ('/',$menu_date);
                 
    // valid date, shows the week days name plus the date
                
    for ($x=0;$x<6;$x++){
                    
    $arr_week [$x] .= ', '.date('d/m/Y'mktime(000$split_date[1], $split_date[0]+$x$split_date[2]));
                }
            }
            
    $daily_menu     '';
            
    $str_formated    '' // format the output html with DL and UL according
            
            
            
    if ($arr_menu == ) {
                return 
    0;
            } else {
                
    $str_formated '<dl>';
                
    $x=0;
                foreach (
    $arr_menu as $value) {
                    
    $str_formated     .= "<dt>{$arr_week[$x]}</dt>";
                    
    $x++;
                    
    $str_formated     .= '<dd><ul>';                
                    
    // split the menu for each day
                    
    $daily_menu explode (';',$value);
                    foreach (
    $daily_menu as $value){
                         
    // formats the daily menu for html ul
                        
    $str_formated .= '<li>' $value '</li>';                
                    }
                    
    $str_formated     .= '</ul></dd>';                
                }
                
    $str_formated     .= '</dl>';                
            }
            return 
    $str_formated;
        } 
    // function
    Conteúdo do ficheiro
    PHP:
    --- início do ficheiro -----
    palavra-passepara evitar abusos:)
    15/09/2008 <- dia da 2ª feiraos outros dias são tirados deste
    Dobrada
    ;Coxas de Frango
    Carne assada
    ;Filetes de pescada com arroz de tomate
    Carne de porco à alentejana
    Carapaus Cozidos
    Mão de vaca c
    grãoMaionese com mostarda;Rojões com manteiga;Bitoques
    Carne de vaca à primavera
    Pataniscas carroz de tomate
    Rancho c
    feijão;Arroz de pato
    --- fim do ficheiro -----
     
  10. Frango.

    Frango. Power Member

    omg deu-me erro :sad1:

    pus o código assim:

    PHP:
    <?
    $dia_semana date("w");

    switch (
    $dia_semana) {
       case 
    1:

    if (!
    $dia){

    echo 
    "<a href='programacao.php'><u>Segunda</u></a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Programação";
    break;
    }

    switch (
    $dia_semana) {
       case 
    2:

    } elseif (
    $dia=='terca'){

    echo 
    "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'><u>Terça</u></a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Programação";
    break;
    }

    switch (
    $dia_semana) {
       case 
    3:
    } elseif (
    $dia=='quarta'){

    echo 
    "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'><u>Quarta</u></a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Programação";
    break;

    switch (
    $dia_semana) {
       case 
    4:
    } elseif (
    $dia=='quinta'){

    echo 
    "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'><u>Quinta</u></a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Programação";
    break;

    }
    switch (
    $dia_semana) {
       case 
    5:

    elseif (
    $dia=='sexta'){

    echo 
    "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'><u>Sexta</u></a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Programação";
    break;
    }

    switch (
    $dia_semana) {
       case 
    6:
    elseif (
    $dia=='sabado'){

    echo 
    "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'><u>Sábado</u></a> | <a href='?dia=domingo'>Domingo</a><br/><br/>Programação";
    break;
    }

    switch (
    $dia_semana) {
       case 
    7:
    elseif (
    $dia=='domingo'){

    echo 
    "<a href='programacao.php'>Segunda</a> | <a href='?dia=terca'>Terça</a> | <a href='?dia=quarta'>Quarta</a> | <a href='?dia=quinta'>Quinta</a> | <a href='?dia=sexta'>Sexta</a> | <a href='?dia=sabado'>Sábado</a> | <a href='?dia=domingo'><u>Domingo</u></a><br/><br/>Programação";
    break;
    }

    ?>
    Código:
    [B]Parse error[/B]:  parse error, unexpected T_ELSEIF in [B]/home/www/******/******/programacao.php[/B] on line [B]105[/B]
    O que tá mal? Podem corrigir sff?
     
  11. krunch

    krunch Power Member

  12. Frango.

    Frango. Power Member

    funcionou.. mas agora queria por o else if para as paginas ficarem programacao?dia=segunda tipo ter as duas funcionalidades php.. como faço agora?

    novo código :P

    PHP:
    <?
    $dia_semana date("w");

    switch (
    $dia_semana) {
    case 
    "1":
        echo 
    "i is apple";
        break;
    case 
    "2":
        echo 
    "i is bar";
        break;
    case 
    "3":
        echo 
    "i is cake";
        break;
    }
    ?>
     
  13. h4des

    h4des Power Member

    Algo do genero...

    PHP:
    $dia_semana date("w");
    if(!isset(
    $_GET['dia']) {
        switch (
    $dia_semana) {
           case 
    "1":
              echo 
    "i is apple";
           break;
           case 
    "2":
              echo 
    "i is bar";
           break;
           case 
    "3":
              echo 
    "i is cake";
           break;
       }
    } else {
       switch (
    $_GET['dia']) {
          case 
    "segunda":
              echo 
    "i is apple";
          break;
          case 
    "terca":
              echo 
    "i is bar";
          break;
          case 
    "quarta":
              echo 
    "i is cake";
          break;
          
    // etc
       
    }
    }
    ?>
     
  14. Frango.

    Frango. Power Member

    Exprimentei agora e não deu :(
     
  15. h4des

    h4des Power Member

    PHP:
    <?
    $dia_semana date("w");
    if(!isset(
    $_GET['dia'])) {
        switch (
    $dia_semana) {
           case 
    "1":
              echo 
    "i is apple";
           break;
           case 
    "2":
              echo 
    "i is bar";
           break;
           case 
    "3":
              echo 
    "i is cake";
           break;
       }
    } else {
       switch (
    $_GET['dia']) {
          case 
    "segunda":
              echo 
    "i is apple";
          break;
          case 
    "terca":
              echo 
    "i is bar";
          break;
          case 
    "quarta":
              echo 
    "i is cake";
          break;
          
    // etc
       
    }
    }
    ?>  
    Pois, estive a ver e tinha-me esquecido de um parentesis. Corrigido! : P

    Agora estive a testar e já está a funcionar:

    http://webartdesign-eu.net/teste.php
    Aparece "i is cake" porque hoje é quarta.

    Se puseres
    http://webartdesign-eu.net/teste.php?dia=quarta
    Também aparece o mesmo

    E se puseres
    http://webartdesign-eu.net/teste.php?dia=terca
    Aparece "i is bar"
     
  16. MPalhas

    MPalhas Power Member

    é desnecessário usar dois cases diferentes para fazer a mesma coisa, quando podem fazer isto:

    PHP:
    $dia = isset($_GET['dia']) ? $_GET['dia'] : date("w");

    switch (
    $dia) {
       case 
    "domingo":
       case 
    "0":
          
    //código para o domingo
          
    break;

       case 
    "segunda":
       case 
    "1":
          
    //código para segunda
          
    break;

    //etc, etc
    }
    mas melhor ainda, porque é que o $_GET['dia'] tem que vir num formato (o dia por extenso), e o date() tem que vir noutro(o número do dia)?
    não era muito mais simples e lógico dar o mesmo tipo de valores aos dois?

    neste caso, podem usar valores numéricos de 0 a 6, ou então os dias por extenso, mas em inglês (porque é assim que eles são retornados do date() )

    de qualquer das formas, tudo isto é mais lógico do que fazer dois swith diferentes para a mesma coisa
     
  17. Frango.

    Frango. Power Member

    Hey! Obrigado MPalhas! Funcionou perfeitamente!
     

Partilhar esta Página