Ir para conteúdo

Arquivado

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

infonet

Listar agenda semanalmente

Recommended Posts

Olá pessoal,

Será que alguém tem um script sobre como mostrar agendamentos por semana?

É o seguinte:

Durante a semana, somente na TERÇA e QUINTA são agendados algumas atendimentos:

TERÇA: 13:00 - 14:00 - 15:00 - 16:00 e 17:00

QUINTA: 08:00 - 09:00 - 10:00 - 11:00 e 12:00

 

Não sei se estou certo, mas tava pensando em jogar o número da semana, na página principal, de acordo com o dia...

Tipo, estamos, por exemplo, na semana 45, do mês: $semana = "45",

então, na página include, no SELECT: "SELECT data FROM agenda WHERE data == $semana"

 

Já tentei várias ganbiarras, mas não tá dando muito certo!

 

Se o usuário inseriu na semana passada:

1) Alguns agendamentos para aquela semana passada;

2) Alguns agendamentos para esta semana;

3) E alguns agendamentos para semana que vem;

 

Como mostrar somente os agendamentos da semana do dia que a página de agenda foi aberta e NÃO mostrar agendamentos passados e nem futuros?

 

Na tabela agenda, tenho:

nome

telefone

data_ag

dia

horario

login

data

hora

 

Preciso de ajuda... rsrs

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, se vc salva adata como por exemplo 2015-09-17, então pode ser feito uma consulta no banco de dados em torno das datas da semana, tipo, vc identifica qual dia da semana é o dia que a página foi aberta, em seguida identifica quando é domingo e sábado, e faz uma pesquisa usando isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer algo pronto? Se sim, aqui não é o lugar certo.

 

O que você já fez até agora? Vamos te ajudando aqui no fórum.*

 

 

 

 

 

*aqui no fórum, evite mandar mensagens particulares.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eis o código:

<?
$mes = date("m"); $ano = date("Y"); $dia = date("d"); $dia_semana = date("w"); $cont=0;
While($cont <= 6) {
$dia_calendario = date("d/m",mktime(0,0,0,$mes,$dia-$dia_semana,$ano));
$dia_s_calendario = dia(date("w",mktime(0,0,0,$mes,$dia-$dia_semana,$ano)));
if ($dia_semana == "-1") { echo $dia_calendario; }
if ($dia_semana == "-3") { echo $dia_calendario; }
$dia_semana--; $cont++;
}
Function dia($dia) { switch($dia) {
case "2" : echo "[Terça] "; break;
case "4" : echo "[Quinta] "; break;
} }
?>

 

para pegar as Terças e Quintas.

Mas eu não estou conseguindo dividí-los, pois está mostrando assim:

[Terça] 23/09[Quinta] 25/09

 

mas eu preciso assim:

[Terça] 23/09

... dados agendados neste dia ...

[Quinta] 25/09

... dados agendados neste dia ...

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

Após eu conseguir dividí-los, ficaria assim:

[Terça] 23/09

João Silva

Atendendte: Fulano

Horário: 10H00

 

Mário Quitana

Atendendte: Soares

Horário: 11H00

 

Joana Pereira

Atendendte: Santana

Horário: 12H00

 

[Quinta] 25/09

Maria do Carmo

Atendendte: Ciclano

Horário: 15H30

 

Sandra Passarinho

Atendendte: Santana

Horário: 16H30

 

Cláudio Araújo

Atendendte: Fulano

Horário: 17H30

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

Para dividí-los estava pensando assim:

$sqlp = "SELECT * FROM agenda WHERE WEEKOFYEAR( NOW() )";
$sqlp = mysql_query($sqlp) or die (mysql_error());
while($grdados = mysql_fetch_array($sqlp)){

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

Eu estou perdido e preciso de ajuda...

Tudo que tentei até agora não tá funfando corretamente...

Até porque em outra área eu vou mostrar a agendo completa, mas na tela principal eu necessito mostrar a TERÇA e a QUINTA da semana corrente.

 

Help please... Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andei dando uma mexida, fiz isso:

 

 

<?php/*Estarei utilizando o date("N") pois o sábado e domingo cai como 6 e 7 respectivamentee a partir disso pode ser implementado alguma situação onde caso seja sábado ou domingo,Pege os dias da semana que vem*/// Pega o dia da semana atual 1 para segunda, 2 para terça ... 7 para domingo$datas["atual"]["semana"] = date("N");$datas["atual"]["dia"] = date("d");$datas["atual"]["mes"] = date("m");$datas["atual"]["ano"] = date("Y");$datas["atual"]["mktime"] = mktime(0,0,0,$datas["atual"]["mes"],$datas["atual"]["dia"],$datas["atual"]["ano"] = date("Y"));// caso queira que a partir de domingo é só trocar o 5 pelo 6 para ver as coisas da semana que vem$up_semana = ($datas["atual"]["semana"] > 5) ? 7 : 0;// Inicia a busca na terça-feira que é representado pelo 2$datas["inicio"]["semana"] = 2;$datas["inicio"]["distancia"] = $datas["atual"]["semana"] - $datas["inicio"]["semana"] - $up_semana;$datas["inicio"]["mktime"] = $datas["atual"]["mktime"] - (($datas["inicio"]["distancia"]*24)*60*60);$datas["inicio"]["dia"] = date("Y-m-d", $datas["inicio"]["mktime"]);// Finaliza a busca na quinta-feira que é representado pelo 4$datas["fim"]["semana"] = 4;$datas["fim"]["distancia"] = $datas["atual"]["semana"] - $datas["fim"]["semana"] - $up_semana;$datas["fim"]["mktime"] = $datas["atual"]["mktime"] - (($datas["fim"]["distancia"]*24)*60*60);$datas["fim"]["dia"] = date("Y-m-d", $datas["fim"]["mktime"]);// A partir da informação que foi dada a $datas["inicio"]["dia"] e $datas["fim"]["dia"] se faz a pesquisa no banco de dados$database["host"] = "localhost";$database["sgbd"] = "mysql";$database["name"] = "duvidas_listarEventosSemana";$database["user"] = "root";$database["pass"] = "123456";$database["con"] = new PDO("{$database["sgbd"]}:host={$database["host"]};dbname={$database["name"]}", "{$database["user"]}", "{$database["pass"]}");$database["query"] = "SELECT * FROM eventos WHERE data between '{$datas["inicio"]["dia"]}' AND '{$datas["fim"]["dia"]}' ORDER BY `data` ASC";$database["result"] = $database["con"]->query($database["query"]);echo("<pre>");while($row = $database["result"]->fetch(PDO::FETCH_OBJ)){  echo("<p>ID: {$row->id}</p>");  echo("<p>Data: {$row->data}</p>");  echo("<p>Data: {$row->titulo}</p>");  echo("<p>Data: {$row->descricao}</p>");}echo("</pre>");

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Andei dando uma mexida, fiz isso:

 

 

<?php

/*
Estarei utilizando o date("N") pois o sábado e domingo cai como 6 e 7 respectivamente
e a partir disso pode ser implementado alguma situação onde caso seja sábado ou domingo,
Pege os dias da semana que vem
*/

// Pega o dia da semana atual 1 para segunda, 2 para terça ... 7 para domingo
$datas["atual"]["semana"] = date("N");
$datas["atual"]["dia"] = date("d");
$datas["atual"]["mes"] = date("m");
$datas["atual"]["ano"] = date("Y");
$datas["atual"]["mktime"] = mktime(0,0,0,$datas["atual"]["mes"],$datas["atual"]["dia"],$datas["atual"]["ano"] = date("Y"));

// caso queira que a partir de domingo é só trocar o 5 pelo 6 para ver as coisas da semana que vem
$up_semana = ($datas["atual"]["semana"] > 5) ? 7 : 0;

// Inicia a busca na terça-feira que é representado pelo 2
$datas["inicio"]["semana"] = 2;
$datas["inicio"]["distancia"] = $datas["atual"]["semana"] - $datas["inicio"]["semana"] - $up_semana;
$datas["inicio"]["mktime"] = $datas["atual"]["mktime"] - (($datas["inicio"]["distancia"]*24)*60*60);
$datas["inicio"]["dia"] = date("Y-m-d", $datas["inicio"]["mktime"]);

// Finaliza a busca na quinta-feira que é representado pelo 4
$datas["fim"]["semana"] = 4;
$datas["fim"]["distancia"] = $datas["atual"]["semana"] - $datas["fim"]["semana"] - $up_semana;
$datas["fim"]["mktime"] = $datas["atual"]["mktime"] - (($datas["fim"]["distancia"]*24)*60*60);
$datas["fim"]["dia"] = date("Y-m-d", $datas["fim"]["mktime"]);

// A partir da informação que foi dada a $datas["inicio"]["dia"] e $datas["fim"]["dia"] se faz a pesquisa no banco de dados

$database["host"] = "localhost";
$database["sgbd"] = "mysql";
$database["name"] = "duvidas_listarEventosSemana";
$database["user"] = "root";
$database["pass"] = "123456";
$database["con"] = new PDO("{$database["sgbd"]}:host={$database["host"]};dbname={$database["name"]}", "{$database["user"]}", "{$database["pass"]}");
$database["query"] = "SELECT * FROM eventos WHERE data between '{$datas["inicio"]["dia"]}' AND '{$datas["fim"]["dia"]}' ORDER BY `data` ASC";
$database["result"] = $database["con"]->query($database["query"]);

echo("<pre>");
while($row = $database["result"]->fetch(PDO::FETCH_OBJ)){
  echo("<p>ID: {$row->id}</p>");
  echo("<p>Data: {$row->data}</p>");
  echo("<p>Data: {$row->titulo}</p>");
  echo("<p>Data: {$row->descricao}</p>");
}
echo("</pre>");

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

Olá Diegus,

É quase isso... porém tem que separar a terça da quinta... e no que você postou estão juntos.

 

TIPO:

AGENDA DE TERÇA - Dia 06/10/2015

Mostrar os horários deste dia...

 

AGENDA DE QUINTA - Dia 08/10/2015

Mostrar os horários deste dia...

 

Muito obrigado... Luz e Paz!

Compartilhar este post


Link para o post
Compartilhar em outros sites

aff... consegui...!

FICOU ASSIM (final do código)

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

 

echo "<div style='height:20px;padding-bottom:10px;'>AGENDA DE TERÇA-FEIRA</div>";

$sqlp = "SELECT * FROM pericia WHERE dataag between '{$datas["inicio"]["dia"]}'  AND '{$datas["inicio"]["dia"]}' AND conclusao = '' ORDER BY 'dataag' ASC";
$sqlp = mysql_query($sqlp) or die (mysql_error());
while($row = mysql_fetch_array($sqlp)){
    $Dsemana = $row['diasemana'];
    $dataag = $row['dataag'];
    $horaag = $row['horaag'];

echo "<div style='height:20px;padding-bottom:5px;'>Dia $dataag, às $horaag - $Dsemana</div>";
}

echo "<div style='height:50px;'></div>";

echo "<div style='height:20px;padding-bottom:10px;'>AGENDA DE QUINTA-FEIRA</div>";

$sqlp = "SELECT * FROM pericia WHERE dataag between '{$datas["fim"]["dia"]}'  AND '{$datas["fim"]["dia"]}' AND conclusao = '' ORDER BY 'dataag' ASC";
$sqlp = mysql_query($sqlp) or die (mysql_error());
while($row = mysql_fetch_array($sqlp)){
    $Dsemana = $row['diasemana'];
    $dataag = $row['dataag'];
    $horaag = $row['horaag'];

echo "<div style='height:20px;padding-bottom:5px;'>Dia $dataag, às $horaag - $Dsemana</div>";
-------------------------------------------------------

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo!!!

 

TÁ ASSIM:

 

TERÇA-FEIRA - 20/10/15
às 14:30 - Terça
TERÇA-FEIRA - 20/10/15
às 14:50 - Terça
QUINTA-FEIRA - 22/10/15
às 09:40 - Quinta
QUINTA-FEIRA - 22/10/15
às 10:10 - Quinta

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.