Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!
rsrs...
É justamente a ajuda que estou procurando aqui!
Você pode me ajudar?
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.
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++;
}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!
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>");>
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!
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>";
-------------------------------------------------------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
Já testou com o select [distinct](http://www.techonthenet.com/mysql/distinct.php) ?
Efetua o distinct pelo dia da semana, cria um laço foreach e dentro desse laço faz um select pegando os compromissos desse dia.
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.