Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Dias do mês especificando dia da semana e ano

29-02-2016 14:51

Levando em conta este script: (viewtopic.php?p=3316):

<?php for($i = 1; $i <= date("t"); $i++) { $i==date("d") ? $valor = "selected" : $valor = ""; $i<=9 ? $zero = "0" : $zero = ""; echo $i; } ?>

Como faço para listar somente os dias da semana específico com o mês que eu solicitar num select?

Já tenho um script pronto que informa os dias da semana, que necessitarei:
0 = Domingo - 1 = Segunda-feira - (...) - 4 = Quinta-feira
COLUNA A) $NdiaM1 = 1
COLUNA B) $NdiaM2 = 4

Gostaria de adicionar a resposta de $NdiaM1 (Segunda-feira) e $NdiaM2 (Quinta-feira) ao script postado acima...
Como listar?
1) Somente os dias do mês que caem na Segunda-feira na COLUNA A
2) Somente os dias do mês que caem na Quinta-feira na COLUNA B

Desde já eu agradeço... Luz e Paz!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

29-02-2016 14:58

Você quer fazer algo tipo assim?

Fevereiro
Segunda-feira: 1, 8, ..
Quinta-feira: 4, 11, ..


Veja se seria isso.

<?php $ano = 2016; // ANO $mes = 02; // MÊS $segunda = Array(); $quinta = Array(); for($i = 1; $i <= date("t"); $i++) { $hoje = $ano.'-'.$mes.'-'.$i; if(date('w', strtotime($hoje))==1) { $segunda[] = $i; } if(date('w', strtotime($hoje))==4) { $quinta[] = $i; } } // for echo "Segunda-feira: ".implode(",", $segunda)."<br />"; // 1,8,15,22,29 echo "Quinta-feira: ".implode(",", $quinta)."<br />"; // 4,11,18,25 ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

01-03-2016 17:12

Obrigado Web!
Fiz assim:

$hora_s = $sch11 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch12 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch13 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch14 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch15; $hora_q = $sch21 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch22 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch23 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch24 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch25; $ano = 2016; // ANO $mes = 01; // MÊS $segunda = Array(); $quinta = Array(); for($i = 1; $i <= date("t"); $i++) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $hoje = $ano.'-'.$zeros.$mes.'-'.$i; if(date('w', strtotime($hoje)) == $NdiaM1) { $segunda[] = $zero.$i."/".$mes."/".$ano ." - ".$hora_s; } if(date('w', strtotime($hoje)) == $NdiaM2) { $quinta[] = $zero.$i."/".$mes."/".$ano ." - ".$hora_q; } } echo $MDia1."<br />".implode("<br />", $segunda)."<br /><br />"; echo $MDia2."<br />".implode("<br />", $quinta)."<br /><br />";

RESULTADO:

Segunda-feira
04/1/2016 - 14:30 14:50 15:10 15:30
11/1/2016 - 14:30 14:50 15:10 15:30
18/1/2016 - 14:30 14:50 15:10 15:30
25/1/2016 - 14:30 14:50 15:10 15:30

Quinta-feira
07/1/2016 - 09:40 10:00 10:20 10:40
14/1/2016 - 09:40 10:00 10:20 10:40
21/1/2016 - 09:40 10:00 10:20 10:40
28/1/2016 - 09:40 10:00 10:20 10:40


Não consigo conectar outra tabela de armazena as horas utilizadas em cada dia:

$sql = "SELECT * FROM pericia WHERE dataag = '$hoje'"; $sql = mysql_query($sql) or die (mysql_error()); while($rowh = mysql_fetch_array($sql)){ $idag = $rowh['idag']; $dataag = $rowh['dataag']; // 2016-01-04 (armazena dia) $horaag = $rowh['horaag']; // 14:30 (armazena horário) }

Quando o horário do dia, exemplo 14:30 do 04/01/2016 (2016-01-04, segunda), for escolhido, o horário 14:30 do dia 04/01/2016 da segunda deve mudar a cor ou ficar negrito...
Será que é possível? Já tentei um monte, mas tá tudo se repetindo por causa da listagem abaixo e não consigo separar:

if(date('w', strtotime($hoje)) == $NdiaM1) { $segunda[] = $zero.$i."/".$mes."/".$ano ." - ".$hora_s; } if(date('w', strtotime($hoje)) == $NdiaM2) { $quinta[] = $zero.$i."/".$mes."/".$ano ." - ".$hora_q; }

Luz e Paz!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

01-03-2016 18:24

Para fazer esse destaque que você precisa nessa estrutura vai ser bem complicado.
Eu até fiz uma base aqui colocando a data em negrito.

<?php $sch11 = "14:30"; $sch12 = "14:50"; $sch13 = "15:10"; $sch14 = "15:30"; $sch15 = "17:30"; $sch21 = "14:30"; $sch22 = "14:50"; $sch23 = "15:10"; $sch24 = "15:30"; $sch25 = "17:30"; $hora_s = $sch11 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch12 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch13 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch14 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch15; $hora_q = $sch21 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch22 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch23 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch24 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch25; $ano = 2016; // ANO $mes = 01; // MÊS $segunda = Array(); $quinta = Array(); function Data($data) { $data_bd = "04/1/2016"; if($data==$data_bd) { return "<b>$data</b>"; } else { return "$data"; } } for($i = 1; $i <= date("t"); $i++) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $hoje = $ano.'-'.$zeros.$mes.'-'.$i; if(date('w', strtotime($hoje)) == 1) { $segunda[] = Data($zero.$i."/".$mes."/".$ano) ." - ".$hora_s; } if(date('w', strtotime($hoje)) == 4) { $quinta[] = $zero.$i."/".$mes."/".$ano ." - ".$hora_q; } } echo "Segunda<br />".implode("<br />", $segunda)."<br /><br />"; echo "Quarta<br />".implode("<br />", $quinta)."<br /><br />"; ?>

Eu acho melhor você mudar a estrutura desse script.

Eu te recomendo usar essa estrutura de agenda Script-de-agenda-PHP-e-MySQL-para-download_19_9590.html
Para inserir os dados na tabela você pode usar o script que gera as datas, para fazer a inserção das linhas das datas. Depois é só ir editando os clientes dos horários.

Se você achar melhor e precisar de alguma dica só falar.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

02-03-2016 13:37

Olá Web, muito obrigado, mas não deu certo.
São os horários que deveriam mudar caso estivessem livres... e é por isso que não estou conseguindo...

Como eu poderia trazer os horários agendados de dentro do SQL para este script?

$hora_s = $sch11 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch12 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch13 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch14 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch15; $hora_q = $sch21 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch22 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch23 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch24 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch25;

Os horários que postei acima sempre vão existir e a medida que vão sendo escolhidos, eles entram para a tabela PERICIA...
Tenho que encontrar uma forma de ligar os horários que foram agendados na tabela PERICIA com os horários do script levando em conta o mesmo DIA.

Não sei se me fiz compreender... (rs)

Luz e Paz!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

02-03-2016 13:59

No script que indiquei tem os horários, que são as colunas da tabela.

Você pode fazer o seguinte, se a coluna "horário" estiver vazio, ou seja, sem cliente - horário livre, então coloca o horário que é o nome da coluna em negrito, caso contrário o nome da coluna ficaria normal. Creio que seria o mesmo resultado.

Outra coisa que poderia ser feito. Você tem os dias, Segunda e Quarta que são listados no script.
Dependendo de como está estruturado sua tabela poderia fazer um if para informar se o horário está livre ou não.

Tem como colocar um print da sua tabela com os dados?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

02-03-2016 15:23

PERICIA: agendamento

-- -- Table structure for table `pericia` -- CREATE TABLE `pericia` ( `idag` int(255) NOT NULL auto_increment, `beneficiario` varchar(255) collate latin1_general_ci NOT NULL, `telefone` varchar(255) collate latin1_general_ci NOT NULL, `celular` varchar(255) collate latin1_general_ci NOT NULL, `procedimento` text collate latin1_general_ci NOT NULL, `medico` varchar(255) collate latin1_general_ci NOT NULL, `nsemana` varchar(255) collate latin1_general_ci NOT NULL, `diasemana` varchar(255) collate latin1_general_ci NOT NULL, `dataag` varchar(255) collate latin1_general_ci NOT NULL, `horaag` varchar(255) collate latin1_general_ci NOT NULL, `conclusao` text collate latin1_general_ci NOT NULL, `concluido` varchar(255) collate latin1_general_ci NOT NULL default 'Não', `login` varchar(255) collate latin1_general_ci NOT NULL, `data` varchar(255) collate latin1_general_ci NOT NULL, `hora` varchar(255) collate latin1_general_ci NOT NULL, `CONC_login` varchar(255) collate latin1_general_ci NOT NULL, `CONC_data` varchar(255) collate latin1_general_ci NOT NULL, `CONC_hora` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`idag`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=75 ; -- -- Dumping data for table `pericia` -- INSERT INTO `pericia` VALUES (60, 'Teste 1', '23 2323-2323', '55 56565-6556', 'Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. Teste do dia 25/01/16. popo', 'Dr. Mário de Melo Gonçalves', '', 'Segunda-feira', '2016-01-25', '14:30', 'As mesma ontem quando foi que você está sempre aqui porque ele foi então foi e sempre .', 'Sim', 'ederr', '25/01/16', '18:01', '', '', ''); INSERT INTO `pericia` VALUES (61, 'Teste 2', '12 1212-1212', '89 89898-9898', 'opop op pop oo pop opo o opop opop op pop oo pop opo o opop opop op pop oo pop opo o opop opop op pop oo pop opo o opop opop op pop oo pop opo o opop opop op pop oo pop opo o opop opop op pop oo pop opo o opop opop op pop oo pop opo o opop opop op pop oo pop opo o opop opop op pop oo pop opo o opop', 'Dra. Maria do Socorros Assis', '', 'Quinta-feira', '2016-01-07', '10:20', 'opopo pop op popopop opop opop opoo popopo wew ewe wew we wewe wew opopo pop op popopop opop opop opoo popopo wew ewe wew we wewe wew opopo pop op popopop opop opop opoo popopo wew ewe wew we wewe wew ', 'Sim', 'paulocs', '25/01/16', '18:49', 'monica', '08/01/16', '16:21'); INSERT INTO `pericia` VALUES (68, 'Teste 02', '12 1122-1121', '12 12121-2121', 'wewewww weww ewewe wewew ewew ewew ewewe wewe wew ewew wewewww weww ewewe wewew ewew ewew ewewe wewe wew ewew wewewww weww ewewe wewew ewew ewew ewewe wewe wew ewew ', 'Dra. Maria do Socorros Assis', '', 'Segunda-feira', '2016-01-04', '15:10', 'dsdsdsd', 'Sim', 'ederr', '08/01/16', '20:39', 'monica', '08/01/16', '16:22'); INSERT INTO `pericia` VALUES (69, 'Silvia Maria', '23 2323-2323', '23 23232-3232', 'opopop opop opop opo popo po popopo opo opopo op opopoo opopop opop opop opo popo po popopo opo opopo op opopoo XX', 'Dr. Mário de Melo Gonçalves', '', 'Segunda-feira', '2016-01-04', '14:50', '', 'Não', 'ederr', '08/01/16', '16:04', '', '', ''); INSERT INTO `pericia` VALUES (70, 'Teste 33', '23 2323-2323', '23 23232-3232', 'opopopo pop opo pop opo pop opo pop op op op opopop opo pop opo po o popo popo opopopo pop opo pop opo pop opo pop op op op opopop opo pop opo po o popo popo opopopo pop opo pop opo pop opo pop op op op opopop opo pop opo po o popo popo opopopo pop opo pop opo pop opo pop op op op opopop opo pop opo po o popo popo opopopo pop opo pop opo pop opo pop op op op opopop opo pop opo po o popo popo ', 'Dr. Mário de Melo Gonçalves', '', 'Quinta-feira', '2016-01-07', '09:40', '', 'Não', 'paulocs', '08/01/16', '19:00', '', '', ''); INSERT INTO `pericia` VALUES (71, 'Teste 44', '45 5454-5454', '54 54545-4545', 'opopo eqeweqwe ewqewqewqe wqewqeqwewq ewq ewq e wq ewqe wqewq ewqe wqe opopo eqeweqwe ewqewqewqe wqewqeqwewq ewq ewq e wq ewqe wqewq ewqe wqe opopo eqeweqwe ewqewqewqe wqewqeqwewq ewq ewq e wq ewqe wqewq ewqe wqe opopo eqeweqwe ewqewqewqe wqewqeqwewq ewq ewq e wq ewqe wqewq ewqe wqe opopo eqeweqwe ewqewqewqe wqewqeqwewq ewq ewq e wq ewqe ', 'Dra. Maria do Socorros Assis', '', 'Segunda-feira', '2016-01-04', '15:30', 'nmnmnmnmn mnm nmnm nmn mnm nmn mnm nm mn mnmn mn nmn n mn mnmn mn mn mn nmnmnmnmn mnm nmnm nmn mnm nmn mnm nm mn mnmn mn nmn n mn mnmn mn mn mn nmnmnmnmn mnm nmnm nmn mnm nmn mnm nm mn mnmn mn nmn n mn mnmn mn mn mn nmnmnmnmn mnm nmnm nmn mnm nmn mnm nm mn mnmn mn nmn n mn mnmn mn mn mn nmnmnmnmn mnm nmnm nmn mnm nmn mnm nm mn mnmn mn nmn n mn mnmn mn mn mn nmnmnmnmn mnm nmnm nmn mnm nmn mnm nm mn mnmn mn nmn n mn mnmn mn mn mn ', 'Sim', 'ederr', '08/01/16', '19:07', 'monica', '08/01/16', '19:09'); INSERT INTO `pericia` VALUES (72, 'Marcela Soares Magalhães Pinto Gonçalves', '34 4563-2156', '34 98795-2132', '1º Teste de FEV popoo opo pop popo oo popo popo poo po 1º Teste de FEV popopopop pop opo popo 1º Teste de FEV 1º Teste de FEV popoo opo pop popo oo popo popo poo po 1º Teste de FEV popopopop pop opo popo 1º Teste de FEV 1º Teste de FEV popoo opo pop popo oo popo popo poo po 1º Teste de FEV popopopop pop opo popo 1º Teste de FEV 1º Teste de FEV popoo opo pop popo oo popo popo poo po 1º Teste de FEV popopopop pop opo popo 1º Teste de FEV ', 'Dr. Mário de Melo Gonçalves', '', 'Segunda-feira', '2016-02-15', '14:30', '', 'Não', 'paulocs', '13/02/16', '18:33', '', '', ''); INSERT INTO `pericia` VALUES (74, 'Márcio José', '32 3323-2232', '59 59595-9595', '2º Teste de FEV USUÁRIO popoo opo pop popo oo popo popo poo po 2º Teste de FEV USUÁRIO 2º Teste de FEV USUÁRIO ewwewe 2º Teste de FEV USUÁRIO popoo opo pop popo oo popo popo poo po 2º Teste de FEV USUÁRIO 2º Teste de FEV USUÁRIO ewwewe 2º Teste de FEV USUÁRIO popoo opo pop popo oo popo popo poo po 2º Teste de FEV USUÁRIO 2º Teste de FEV USUÁRIO ewwewe ', 'Dra. Maria do Socorros Assis', '', 'Segunda-feira', '2016-02-15', '14:50', '', 'Não', 'ederr', '13/02/16', '00:47', '', '', ''); ---------------------------------------------------------- SCHEDULE: (é permanente, altera-se raramente qndo a clinica decidir) -- -- Table structure for table `schedule` -- CREATE TABLE `schedule` ( `idsch` int(11) NOT NULL auto_increment, `schdia` varchar(255) collate latin1_general_ci NOT NULL, `sch1` varchar(255) collate latin1_general_ci NOT NULL, `sch2` varchar(255) collate latin1_general_ci NOT NULL, `sch3` varchar(255) collate latin1_general_ci NOT NULL, `sch4` varchar(255) collate latin1_general_ci NOT NULL, `sch5` varchar(255) collate latin1_general_ci NOT NULL, `schlogin` varchar(255) collate latin1_general_ci NOT NULL, `schdata` varchar(255) collate latin1_general_ci NOT NULL, `schhora` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`idsch`), FULLTEXT KEY `schdia` (`schdia`), FULLTEXT KEY `schdia_2` (`schdia`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ; -- -- Dumping data for table `schedule` -- INSERT INTO `schedule` VALUES (1, 'SEG', '14:30', '14:50', '15:10', '15:30', '', 'paulocs', '08/01/16', '16:18'); INSERT INTO `schedule` VALUES (2, 'QUI', '09:40', '10:00', '10:20', '10:40', '', 'paulocs', '14/01/16', '12:49'); -- --------------------------------------------------------

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

02-03-2016 15:53

- Então pegaria o script PHP e listaria as datas da Segunda-Feira do mês;
- Teria uma consulta na tabela pericia para pegar os registros da mesma data;
- Na tabela pericia vi que tem uma coluna horaag;
- Seria comparar o horaag.pericia com schhora.schedule baseado na data?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

02-03-2016 16:04

- Seria comparar o horaag.pericia com schhora.schedule baseado na data?
SIM, para poder colocar a hora em, tipo vermelho, para dizer que esta data não poderá ser escolhida pois já houve agendamento para este HORÁRIO naquele MESMO dia.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

02-03-2016 16:44

Montei a parte do listar as datas e puxar os horários da tabela schedule. Veja se seria isso mesmo.

Ao testar veja se as datas geradas estão igual do bd, com o zero.

<?php define("SERVIDOR", "localhost"); define("USUARIO", ""); define("SENHA", ""); define("BANCODEDADOS", ""); function schedule($data) { $conecta = new mysqli(SERVIDOR, USUARIO, SENHA, BANCODEDADOS); // CONECTA if ($conecta->connect_error) { trigger_error("ERRO NA CONEXÃO: " . $conecta->connect_error, E_USER_ERROR); } $sql = "SELECT * FROM schedule WHERE schdata='$data'"; // CONSULTA $query = $conecta->query($sql); // RODA A CONSULTA $colunas = $query->fetch_assoc(); $colunas = $colunas['sch1']." ".$colunas['sch2']." ".$colunas['sch3']." ".$colunas['sch4']." ".$colunas['sch5']; return $colunas; $conecta->close(); // FECHANDO A CONEXÃO } $ano = 2016; // ANO $ano2 = 16; $mes = 02; // MÊS $segunda = Array(); $quinta = Array(); for($i = 1; $i <= date("t"); $i++) { $hoje = $ano.'-'.$mes.'-'.$i; if(date('w', strtotime($hoje))==1) { $segunda[] = $i."/".$mes."/".$ano." ".schedule($i."/".$mes."/".$ano2); } if(date('w', strtotime($hoje))==4) { $quinta[] = $i."/".$mes."/".$ano; } } // for echo "Segunda-feira:<br />".implode("<br />", $segunda)."<br /><br />"; // 1,8,15,22,29 echo "Quinta-feira:<br />".implode("<br />", $quinta)."<br />"; // 4,11,18,25 ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

02-03-2016 17:11

Algo está errado: schdata somente guarda a data de alteração dos dados pela clínica
A table schedule somente armazena dois dias da semana e os horários de atendimento neste dois dias, ela NÃO armazena datas de perícia.
A table schedule EVITA que o cadastrador marque dias/horas inexistentes.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

02-03-2016 17:41

Nesse exemplo que postei há uma função que pega todos os horários da tabela schedule baseado na data do laço.
Então deveria ser da tabela pericia? Se sim, esses horários em pericia iria comparar com quais horários para deixar em negrito?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

03-03-2016 09:19

Sim.
Todos os horários/dia semana vem da table schedule: $MDia1 e $MDia2 e os $schxx
ASSIM:

$sql = "SELECT * FROM schedule WHERE idsch = '1'"; $sql = mysql_query($sql) or die (mysql_error()); while($rowp = mysql_fetch_array($sql)){ $idsch1 = $rowp['idsch']; $schdia1 = $rowp['schdia']; $sch11 = $rowp['sch1']; $sch12 = $rowp['sch2']; $sch13 = $rowp['sch3']; $sch14 = $rowp['sch4']; $sch15 = $rowp['sch5']; if ($schdia1 == "SEG") { $MDia1= "Segunda-feira"; } if ($schdia1 == "TER") { $MDia1= "Terça-feira"; } if ($schdia1 == "QUA") { $MDia1= "Quarta-feira"; } if ($schdia1 == "QUI") { $MDia1= "Quinta-feira"; } if ($schdia1 == "SEX") { $MDia1= "Sexta-feira"; } if ($schdia1 == "SEG") { $NdiaM1 = "1"; } if ($schdia1 == "TER") { $NdiaM1 = "2"; } if ($schdia1 == "QUA") { $NdiaM1 = "3"; } if ($schdia1 == "QUI") { $NdiaM1 = "4"; } if ($schdia1 == "SEX") { $NdiaM1 = "5"; } } $sql = "SELECT * FROM schedule WHERE idsch = '2'"; $sql = mysql_query($sql) or die (mysql_error()); while($rowp = mysql_fetch_array($sql)){ $idsch2 = $rowp['idsch']; $schdia2 = $rowp['schdia']; $sch21 = $rowp['sch1']; $sch22 = $rowp['sch2']; $sch23 = $rowp['sch3']; $sch24 = $rowp['sch4']; $sch25 = $rowp['sch5']; if ($schdia2 == "SEG") { $MDia2= "Segunda-feira"; } if ($schdia2 == "TER") { $MDia2= "Terça-feira"; } if ($schdia2 == "QUA") { $MDia2= "Quarta-feira"; } if ($schdia2 == "QUI") { $MDia2= "Quinta-feira"; } if ($schdia2 == "SEX") { $MDia2= "Sexta-feira"; } if ($schdia2 == "SEG") { $NdiaM2 = "1"; } if ($schdia2 == "TER") { $NdiaM2 = "2"; } if ($schdia2 == "QUA") { $NdiaM2 = "3"; } if ($schdia2 == "QUI") { $NdiaM2 = "4"; } if ($schdia2 == "SEX") { $NdiaM2 = "5"; } } $sql = "SELECT * FROM pericia WHERE dataag = '$hoje'"; $sql = mysql_query($sql) or die (mysql_error()); while($rowh = mysql_fetch_array($sql)){ $idag = $rowh['idag']; $dataag = $rowh['dataag']; $horaag = $rowh['horaag']; } $hora_s = $sch11 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch12 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch13 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch14 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch15; $hora_q = $sch21 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch22 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch23 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch24 ." &nbsp;&nbsp;&nbsp;&nbsp; ". $sch25; $ano = 2016; // ANO $mes = 01; // MÊS $segunda = Array(); $quinta = Array(); for($i = 1; $i <= date("t"); $i++) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $hoje = $ano.'-'.$zeros.$mes.'-'.$i; if(date('w', strtotime($hoje)) == $NdiaM1) { $segunda[] = $zero.$i."/".$mes."/".$ano ." - ".$hora_s; } if(date('w', strtotime($hoje)) == $NdiaM2) { $quinta[] = $zero.$i."/".$mes."/".$ano ." - ".$hora_q; } } echo $MDia1."<br />".implode("<br />", $segunda)."<br /><br />"; echo $MDia2."<br />".implode("<br />", $quinta)."<br /><br />";

Segunda-feira
04/1/2016 - 14:30 14:50 15:10 15:30
11/1/2016 - 14:30 14:50 15:10 15:30
18/1/2016 - 14:30 14:50 15:10 15:30
25/1/2016 - 14:30 14:50 15:10 15:30

Quinta-feira
07/1/2016 - 09:40 10:00 10:20 10:40
14/1/2016 - 09:40 10:00 10:20 10:40
21/1/2016 - 09:40 10:00 10:20 10:40
28/1/2016 - 09:40 10:00 10:20 10:40

Iria comparar com os horários QUE ENTRARAM na table pericia, então os horários coincidentes seriam negrito ou outra cor.

Não sei se fui claro, me desculpe...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

05-03-2016 09:33

Desculpe a demora, fiquei sem internet.

Montei um modelo aqui, faça um teste

Antes olha as alterações que fiz na tabela para pegar as datas

RESULTADO
http://prntscr.com/ac14o5

<?php $ano = 16; // ANO $mes = 02; // MÊS $segunda = Array(); $quinta = Array(); define("SERVIDOR", "localhost"); define("USUARIO", "teste"); define("SENHA", "teste"); define("BANCODEDADOS", "teste"); $dias = Array("Domingo", "Segunda-feira", "Terça-feira", "Quarta-Feira", "Quinta-feira", "Sexta-feira", "Sábado"); // FUNÇÃO DO DESTAQUE DO HORÁRIO function destaca_horario($data, $hora) { $conecta = new mysqli(SERVIDOR, USUARIO, SENHA, BANCODEDADOS); // CONECTA if ($conecta->connect_error) { trigger_error("ERRO NA CONEXÃO: " . $conecta->connect_error, E_USER_ERROR); } $sql = "SELECT data, horaag FROM pericia WHERE data='$data'"; // CONSULTA $query = $conecta->query($sql); $linhas = $query->num_rows; if($linhas >= 1) { $destacados = Array(); while($colunas = $query->fetch_assoc()) { $destacados[] = $colunas["horaag"]; } $query->free(); $s = ""; $horas = explode("-", $hora); foreach($horas AS $h) { // VERIFICANDO SE HORÁ EXISTE NO ARRAY CRIADO NA CONSULTA if(in_array($h, $destacados)==TRUE) { $s.="<b>$h </b>"; } else { $s.= "$h "; } } return $s; //$junta = implode(" ", $destacados); //return str_replace("", "", $hora); } else { //return $hora; } $conecta->close(); } // FUNÇÃO DO DESTAQUE DO HORÁRIO // FUNÇÃO DA LISTAGEM DOS HORÁRIOS NO DIA function busca_horario($data) { $conecta = new mysqli(SERVIDOR, USUARIO, SENHA, BANCODEDADOS); // CONECTA if ($conecta->connect_error) { trigger_error("ERRO NA CONEXÃO: " . $conecta->connect_error, E_USER_ERROR); } $sql = "SELECT CONCAT(sch1,'-',sch2,'-',sch3,'-',sch4,'-',sch5) AS Horarios, schdata FROM schedule WHERE schdata='$data'"; // CONSULTA $query = $conecta->query($sql); $linhas = $query->num_rows; if($linhas >= 1) { while($colunas = $query->fetch_assoc()) { return destaca_horario($colunas['schdata'], $colunas["Horarios"]); } $query->free(); } else { return "sem resultado"; } $conecta->close(); } // FUNÇÃO DA LISTAGEM DOS HORÁRIOS NO DIA // MOTANGEM DO ARRAY COM OS DIAS for($i = 1; $i <= date("t"); $i++) { $hoje = $ano.'-'.$mes.'-'.$i; if(date('w', strtotime($hoje))==1) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $segunda[] = $zero.$i."/".$zeros.$mes."/".$ano; } if(date('w', strtotime($hoje))==4) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $quinta[] = $zero.$i."/".$zeros.$mes."/".$ano; } } // MOTANGEM DO ARRAY COM OS DIAS // LISTANDO AS SEGUNDAS echo $dias[1]."<br />"; foreach($segunda AS $dia) { echo "$dia ".busca_horario("$dia")."<br />"; } // LISTANDO AS QUINTAS echo "<br />"; echo $dias[4]."<br />"; foreach($quinta AS $dia) { echo "$dia ".busca_horario("$dia")."<br />"; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

08-03-2016 12:27

Olá Web,
Obrigado, mas não consigo acessar o endereço: http://prntscr.com/ac14o5 (onde estou é bloqueado)

Onde foi as alterações nas tabelas? Tem como vc postar?

Luz e Paz!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

08-03-2016 12:44

O link que postei é para essa imagem

Imagem
Nas tabelas a única coisa que fiz foi colocar duas datas iguais em ambas as tabelas.

Ai no caso da imagem eu peguei duas linhas da tabela pericia e coloquei com a mesma data da schedule.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

17-03-2016 12:44

Olá Web... estava com uns "pepinos pra descascar" aqui em nossa rede, por isso demorei pra testar...
Infelizmente não funcionou, só aparece a frase "Segunda-feira" na tela e mais nada.

Luz e Paz!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

17-03-2016 17:14

Eu peguei as tabelas que você postou e fiz as seguintes alterações:

tabela pericia:

idag = 60
dataag = 2016-03-07
data = 07/03/16


tabela schedule:

idsch = 1
schdata = 07/03/16


Os ids acima são os ids das linhas que alterei o valor.

O código que usei para a consulta foi o seguinte:

<?php $ano = 16; // ANO $mes = 03; // MÊS $segunda = Array(); $quinta = Array(); define("SERVIDOR", "localhost"); define("USUARIO", "teste"); define("SENHA", "teste"); define("BANCODEDADOS", "teste"); $dias = Array("Domingo", "Segunda-feira", "Terça-feira", "Quarta-Feira", "Quinta-feira", "Sexta-feira", "Sábado"); // FUNÇÃO DO DESTAQUE DO HORÁRIO function destaca_horario($data, $hora) { $conecta = new mysqli(SERVIDOR, USUARIO, SENHA, BANCODEDADOS); // CONECTA if ($conecta->connect_error) { trigger_error("ERRO NA CONEXÃO: " . $conecta->connect_error, E_USER_ERROR); } $sql = "SELECT data, horaag FROM pericia WHERE data='$data'"; // CONSULTA $query = $conecta->query($sql); $linhas = $query->num_rows; if($linhas >= 1) { $destacados = Array(); while($colunas = $query->fetch_assoc()) { $destacados[] = $colunas["horaag"]; } $query->free(); $s = ""; $horas = explode("-", $hora); foreach($horas AS $h) { // VERIFICANDO SE HORÁ EXISTE NO ARRAY CRIADO NA CONSULTA if(in_array($h, $destacados)==TRUE) { $s.="<b>$h </b>"; } else { $s.= "$h "; } } return $s; } else { //return $hora; } $conecta->close(); } // FUNÇÃO DO DESTAQUE DO HORÁRIO // FUNÇÃO DA LISTAGEM DOS HORÁRIOS NO DIA function busca_horario($data) { $conecta = new mysqli(SERVIDOR, USUARIO, SENHA, BANCODEDADOS); // CONECTA if ($conecta->connect_error) { trigger_error("ERRO NA CONEXÃO: " . $conecta->connect_error, E_USER_ERROR); } $sql = "SELECT CONCAT(sch1,'-',sch2,'-',sch3,'-',sch4,'-',sch5) AS Horarios, schdata FROM schedule WHERE schdata='$data'"; // CONSULTA $query = $conecta->query($sql); $linhas = $query->num_rows; if($linhas >= 1) { while($colunas = $query->fetch_assoc()) { return destaca_horario($colunas['schdata'], $colunas["Horarios"]); } $query->free(); } else { return "sem resultado"; } $conecta->close(); } // FUNÇÃO DA LISTAGEM DOS HORÁRIOS NO DIA // MOTANGEM DO ARRAY COM OS DIAS for($i = 1; $i <= date("t"); $i++) { $hoje = $ano.'-'.$mes.'-'.$i; if(date('w', strtotime($hoje))==1) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $segunda[] = $zero.$i."/".$zeros.$mes."/".$ano; } if(date('w', strtotime($hoje))==4) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $quinta[] = $zero.$i."/".$zeros.$mes."/".$ano; } } // MOTANGEM DO ARRAY COM OS DIAS // LISTANDO AS SEGUNDAS echo $dias[1]."<br />"; foreach($segunda AS $dia) { echo "$dia ".busca_horario("$dia")."<br />"; } // LISTANDO AS QUINTAS echo "<br />"; echo $dias[4]."<br />"; foreach($quinta AS $dia) { echo "$dia ".busca_horario("$dia")."<br />"; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

18-03-2016 09:38

Olá Web,

Mas a tabela schedule não pode ser alterada assim... ela é fixa. Ela foi criada para, justamente, controlar as datas da perícia. Através dela, o operador, só poderá agendar perícias para segunda ou quinta nos horários pré-determinados pela clínica... Estes horários somente são alterados de 2 em 2 anos.

idsch schdia sch1 sch2 sch3 sch4 sch5 schlogin schdata schhora
1 SEG 14:30 14:50 15:10 15:30 paulocs 08/01/16 16:18
2 QUI 09:40 10:00 10:20 10:40 paulocs 14/01/16 12:49

As colunas schlogin, schdata e schhora não interferem em nada e sim, somente guardam o login, data e hora em que houve a alteração de 2 em 2 anos.

Portanto, o código que necessito seria para mostrar os dias do mês escolhido das segundas e quintas (schdia da table schedule) masrcando em negrito os dias livres que o operador poderá agendar a próxima consulta.

Obrigado, Luz e Paz!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

18-03-2016 17:01

Entendi. Na tabela pericia, a data que vai ser comparada com o for das segundas e quintas é a dataag ou data?

Fiz esse exemplo baseado na coluna data

<?php $ano = 16; // ANO BUSCADO $mes = 03; // MÊS BUSCADO $segunda = Array(); $quinta = Array(); // CONEXÃO define("SERVIDOR", "localhost"); define("USUARIO", "teste"); define("SENHA", "teste"); define("BANCODEDADOS", "teste"); // CONEXÃO // DIAS POR EXTENSO $dias = Array("Domingo", "Segunda-feira", "Terça-feira", "Quarta-Feira", "Quinta-feira", "Sexta-feira", "Sábado"); // FUNÇÃO DO DESTAQUE DO HORÁRIO function destaca_horario($data, $hora) { $conecta = new mysqli(SERVIDOR, USUARIO, SENHA, BANCODEDADOS); // CONECTA if ($conecta->connect_error) { trigger_error("ERRO NA CONEXÃO: " . $conecta->connect_error, E_USER_ERROR); } $sql = "SELECT data, horaag FROM pericia WHERE data='$data'"; // CONSULTA $query = $conecta->query($sql); $linhas = $query->num_rows; if($linhas >= 1) { // ARRAY DA HORA $horas = Array(); while($colunas = $query->fetch_assoc()) { // ARMAZENANDO AS HORAS DO DIA BUSCADO NO ARRAY $horas[] = $colunas["horaag"]; } // LIBERANDO A QUERY $query->free(); // ARMAZENANDO AS HORAS ENVIADAS $string = $hora; // ARMAZENANDO AS HORAS DO WHILE $palavras = $horas; // DESTACANDO A HORA $p = array("/(".implode("|", $palavras).")/"); $t = array("<b>$1</b>"); return preg_replace($p, $t, $string); } else { // SE NÃO DESTACAR SÓ EXIBE A HORA return $hora; } $conecta->close(); } // FUNÇÃO DO DESTAQUE DO HORÁRIO // ARMAZENANDO NO ARRAY OS HORÁRIOS DISPONÍVEIS DA SCHEDULE // HORÁRIOS EXIBIDOS NA LISTAGEM DA SEGUNDA E QUINTA $horarios = Array(); $conecta = new mysqli(SERVIDOR, USUARIO, SENHA, BANCODEDADOS); // CONECTA if ($conecta->connect_error) { trigger_error("ERRO NA CONEXÃO: " . $conecta->connect_error, E_USER_ERROR); } $sql_schedule = "SELECT CONCAT(sch1,'-',sch2,'-',sch3,'-',sch4,'-',sch5) AS Horarios, schdia, schdata FROM schedule"; $query_schedule = $conecta->query($sql_schedule); while($colunas_schedule = $query_schedule->fetch_assoc()) { $horarios[] = $colunas_schedule["Horarios"]; } $horas1 = explode("-", $horarios[0]); $horas2 = explode("-", $horarios[1]); $query_schedule->free(); // ARMAZENANDO NO ARRAY OS HORÁRIOS DISPONÍVEIS DA SCHEDULE // MOTANGEM DO ARRAY COM OS DIAS for($i = 1; $i <= date("t"); $i++) { $hoje = $ano.'-'.$mes.'-'.$i; if(date('w', strtotime($hoje))==1) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $segunda[] = $zero.$i."/".$zeros.$mes."/".$ano; } if(date('w', strtotime($hoje))==4) { $i <= 9 ? $zero = "0" : $zero = ""; $mes <= 9 ? $zeros = "0" : $zeros = ""; $quinta[] = $zero.$i."/".$zeros.$mes."/".$ano; } } // MOTANGEM DO ARRAY COM OS DIAS // LISTANDO AS SEGUNDAS echo $dias[1]."<br />"; foreach($segunda AS $dia) { echo "$dia ".destaca_horario($dia, implode(" ", $horas1))."<br />"; } // LISTANDO AS QUINTAS echo "<br />"; echo $dias[4]."<br />"; foreach($quinta AS $dia) { echo "$dia ".destaca_horario($dia, implode(" ", $horas2))."<br />"; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

22-03-2016 10:11

Sim Web.
Na table pericia, a coluna dataag é que armazenará os dias agendados e que serão comparados na table schedule para mostrar somente as datas da (neste caso) segundas e quintas marcando, talvez com negrito ou color, os horários que ainda não foram utilizados:

Segunda-feira
04/1/2016 - 14:30 14:50 15:10 15:30
11/1/2016 - 14:30 14:50 15:10 15:30
18/1/2016 - 14:30 14:50 15:10 15:30
25/1/2016 - 14:30 14:50 15:10 15:30

Repare que os horários que estão em NEGRITO estarão livres para agendamento.

Obrigado, Luz e Paz!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

22-03-2016 10:42

Testou ai o script? Eu fiz pela coluna data. No script que fiz foi ao contrário, as datas agendadas que eu deixei negrito.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

22-03-2016 13:18

Testei.... mas tá tudo em branco...

Mudei para dataag, mas não funfou!

Obrigado!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dias do mês especificando dia da semana e ano

22-03-2016 14:27

é porque dataag está em outro formato. A data lá do foreach, a que é mostrada na tela para as segundas e quintas é que é comparada com a tabela pericia.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 52
Sexo: Masculino

Re: Dias do mês especificando dia da semana e ano

23-03-2016 09:35

Olá Web, nada que eu tento faz aparecer... nem erros
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado