Ir para conteúdo

Arquivado

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

Rodrigo Vieira E da Silva

Bug no Insert e Select

Recommended Posts

Boa tarde a todos do fórum, tudo bem com vocês?

Tenho um pequeno sistema de atividades diária cujo objetivo é que cada colaborador da empresa cadastre suas atividades, e as mesmas sejam impressa no calendário.

Abaixo vou pontuar o problemas no sistema

  • Ao cadastrar a atividade do colaborador no calendário só é exibido no mesmo quando realiza o cadastro pela segunda vez.

O Projeto está todo documento somente é necessário fazer o acerto para a conclusão do mesmo.

Segue abaixo o código fonte para vocês.

<?php 
/************************************************************************************************************************************
*
* FAZ A CONEXÃO COM O BANCO DE DADOS
*
/***********************************************************************************************************************************/
require_once('Connections/conecta.php'); 

?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
  $insertSQL = sprintf("INSERT INTO calendario (calendar_data, calendar_responsavel, calendar_cliente, calendar_descricao) VALUES (%s, %s, %s, %s)",
                       GetSQLValueString($_POST['data'], "text"),
                       GetSQLValueString($_POST['colaboradores'], "text"),
                       GetSQLValueString($_POST['cliente'], "text"),
                       GetSQLValueString($_POST['Job'], "text"));

  mysql_select_db($database_conecta, $conecta);
  $Result1 = mysql_query($insertSQL, $conecta) or die(mysql_error());

  $insertGoTo = "index.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

$maxRows_listRespons = 5;
$pageNum_listRespons = 0;
if (isset($_GET['pageNum_listRespons'])) {
  $pageNum_listRespons = $_GET['pageNum_listRespons'];
}
$startRow_listRespons = $pageNum_listRespons * $maxRows_listRespons;

mysql_select_db($database_conecta, $conecta);
$query_listRespons = "SELECT prof_id, prof_name FROM profissionais";
$query_limit_listRespons = sprintf("%s LIMIT %d, %d", $query_listRespons, $startRow_listRespons, $maxRows_listRespons);
$listRespons = mysql_query($query_limit_listRespons, $conecta) or die(mysql_error());
$row_listRespons = mysql_fetch_assoc($listRespons);

if (isset($_GET['totalRows_listRespons'])) {
  $totalRows_listRespons = $_GET['totalRows_listRespons'];
} else {
  $all_listRespons = mysql_query($query_listRespons);
  $totalRows_listRespons = mysql_num_rows($all_listRespons);
}
$totalPages_listRespons = ceil($totalRows_listRespons/$maxRows_listRespons)-1;

?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sistema de Jobs - Brandcompany</title>
<link rel="stylesheet" type="text/css" href="style.css">
<style type="text/css" media="screen">
    .abas a.calendar {background: #d71f27; color:#fff; padding: 1%; width: 5%; margin: 0 0.15% 1%; font: normal 16px 'Calibri';}
    <?php
        $verificames = date('m'); 
        echo ".meses ul li .mes".$verificames ."{background:#d71f27; color: #fff;}"
    ?>
</style>
</head>

<body>
	
    <!-- CABEÇALHO DO SITE -->
    <header>
		<h1>Sistema de Jobs</h1>
		<img src="images/logotipo-brandcompany.gif" alt="Brandcompany">
	</header>
	
    
    <div class="funcoes">
	
    	<!-- Abas de Calendário -->
		<div class="abas">
			<a href="index.php" title="Calendário" class="calendar">Calendário</a>
			<a href="novos-jobs.php" title="Novos Jobs" class="newjobs">Novos Jobs</a>
		</div>

		<!-- Botões referene aos meses -->
        <?php
        
		/***************************************************************************************************************
		*
		* É necessário criar uma função que quando ao abrir ao clicar no respectivo vez do ano ele abra o calendário 
		* exibindo os trabalhos realizados e ainda na primeira semana do mês respectivo clicado.
		*
		****************************************************************************************************************/
		
		?>
		<div class="meses">
			<ul>
				<li><a href="" title="Janeiro" class="mes01">JAN</a></li>
				<li><a href="" title="Fevereiro" class="mes02">FEV</a></li>
				<li><a href="" title="Março" class="mes03">MAR</a></li>
				<li><a href="" title="Abril" class="mes04">ABR</a></li>
				<li><a href="" title="Maio" class="mes05">MAI</a></li>
				<li><a href="" title="Junho" class="mes06">JUN</a></li>
				<li><a href="" title="Julho" class="mes07">JUL</a></li>
				<li><a href="" title="Agosto" class="mes08">AGO</a></li>
				<li><a href="" title="Setembro" class="mes09">SET</a></li>
				<li><a href="" title="Outubro" class="mes10">OUT</a></li>
				<li><a href="" title="Novembro" class="mes11">NOV</a></li>
				<li><a href="" title="Dezembro" class="mes12">DEZ</a></li>
			</ul>
		</div>

		<!-- Formulário de atividades diárias -->
		<form name="form" action="<?php echo $editFormAction; ?>" method="POST">
			<input name="id" type="hidden" value="">
            <label>Data<input name="data" type="text" value="/<?php echo date ('m/Y'); ?>" size="8" maxlength="12" placeholder="Data" autofocus></label>
			<label> Responsável
              
                <select name="colaboradores">
                	<!-----------------------------------------------------------------------------------------------------------------
					*
                    * Abaixo encontra-se um Loop que vai imprimir todos os nomes dos colaboradores e os IDs dentro do value do option
                    * Esses dados são puxados da variavél $row_listRespons, cujo na linha 65 faz um SELECT no banco de Dados
                    *
                    ------------------------------------------------------------------------------------------------------------------>
                
                	<?php do { ?>
	                  <option value="<?php echo $row_listRespons['prof_id']; ?>"><?php echo $row_listRespons['prof_name']; ?></option>
      	            <?php } while ($row_listRespons = mysql_fetch_assoc($listRespons)); ?>
                </select>
            </label>
            
			<label>
				Cliente
				<select name="cliente">
					<option value="Banco Sofisa">Banco Sofisa</option>
					<option value="Brandcompany">Brandcompany</option>
					<option value="BV20">BV20</option>
					<option value="Cinelli Adv">Cinelli Adv</option>
					<option value="Cumulus">Cumulus</option>
					<option value="DM Serv">DM Serv</option>
					<option value="Fairline">Fairline</option>
					<option value="Gerir">Gerir</option>
					<option value="HCM">HCM</option>
					<option value="HUGO">HUGO</option>
					<option value="HMI">HMI</option>
					<option value="HUGO">HUGO</option>
					<option value="HUTRIN">HUTRIN</option>
					<option value="HRPP">HRPP</option>
					<option value="Maternidade">Maternidade</option>
					<option value="Ihouse">Ihouse</option>
					<option value="IICS-CEU">IICS-CEU</option>
					<option value="Insights">Insights</option>
					<option value="Law Consulting">Law Consulting</option>
					<option value="Leal Cotrim">Leal Cotrim</option>
					<option value="Salerno">Salerno</option>
					<option value="Sofisa Direto">Sofisa Direto</option>
					<option value="Sunstate Bank">Sunstate Bank</option>
					<option value="Taler">Taler</option>
					<option value="WFaria">WFaria</option>
				</select>		
			</label>
		  <label>Descrição do Job<input type="input" name="Job" value="" placeholder="Digite a descrição do Job realizado" required></label>
			<input type="hidden" name="MM_insert" value="form">
            <input type="submit" name="submit" value="OK" id="btnOk">
      </form>      
     
	<!-----------------------------------------------------------------------------------------------------------------     
    *
    * Formulário para fazer busca do Jobs pelo o nome do Cliente, na pagina search.php tem que exibir os jobs, conforme
    * as datas nos respectivos lugares. 
    *
    ------------------------------------------------------------------------------------------------------------------->
     
    <form name="busca" action="search.php" method="get" id="frmbuscar">
        <label><input name="palavra" id="search" placeholder="Buscar" required></label>
    </form>


	<!-- Cabeçalho do Calenário com título e botões de navegação para avançar as semanas -->
	<div class="controles">
			
            <!--Função para Exibir o mês atual com a tradução do idioma-->
			<h2>
				<?php
				
					/***************************************************************************************************************
					*
					* Abaixo tem um Set Local no formato em Portguês Brasil, e imprime o dentro do H2 o mês por extenso.
					/
					***************************************************************************************************************/
				
					setlocale(LC_ALL, "pt_BR", "ptb");
					echo strftime("%B");
				?>
			</h2>
            
            <!-- CÓDIFICAÇÃO PARA O CALENDARIO SEMANAL -->            
	  		<?php
				$year = (isset($_GET['year'])) ? $_GET['year'] : date("Y");
				$week = (isset($_GET['week'])) ? $_GET['week'] : date('W');
				if($week > 52) {
					$year++;
					$week = 1;
				} elseif($week < 1) {
					$year--;
					$week = 52;
				}
			?>
            
			<div class="nav">
                <a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week == 52 ? 1 : 1 + $week).'&year='.($week == 52 ? 1 + $year : $year); ?>" title="Proximo">
                    <span class="btn_next">➜</span>
                    <span class="tlinkr">Próximo</span>
                </a>
				<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week == 1 ? 52 : $week -1).'&year='.($week == 1 ? $year - 1 : $year); ?>" title="Anterior">
					<span class="btn_back">➜</span>
					<span class="tlinkl">Anterior</span>
				</a>
			</div>
		</div>
	</div>

	<!-- CALENDÁRIO SEMANAL COM TODOS OS RESULTADOS VINDO DO BANCO DE DADOS -->
	<div class="calendario">
			
			<!-- Barra de títulos -->
			<div class="titulos">

				<div class="funcionarios">
					<h3>Responsável</h3>
				</div>

				<?php
				
					if($week < 10) {
				    $week = '0'. $week;
				}
				
				for($day= 1; $day <= 5; $day++) {
				    $d = strtotime($year ."W". $week . $day);

				    echo "<div class='semanal'>"
				    		."<h3>"	.strftime('%a', $d) ." - " .date ('d/m', $d) ."</h3>"
				    	."</div>";
				}
				
				?>
			</div>

			<div class="colaboradores">

                <div class="funcionarios">
				  <h4>Rodrigo Vieira</h4>
				</div>
				
              	<?php
				
					/****************************************************************************************
					* COLABORADOR RODRIGO
					*
					*  Abaixo é criado um Loop para as montar as .divs conforme o loop (For)
					*  Também abaixo encontramos variavéis, que fazem conexão com o banco de dados  
					*  temos também uma Query em SQL cujo objetivo é retornar o valor conforme 
					*  a data cadastrada e o código do colaborador.
					*
					*  Temos uma condição que SE o número de registros for maior que 0 então
					*  imprimir todos os resultados do banco de dados referente a consulta, 
					*  criada. Caso ao contrário preencher com um hífen.
					*
					*  *PROBLEMA APRESENTADO*
					*  Ao inserir um registro no banco de dados ele não exibe na hora que cadastra, 
					*  somente quando faz a segunda inserção: Exemplo se você for cadastrar no dia 25/12
					*  ele não vai aparecer na primeira vez, somente na segunda vez na mesma data
					*  Ou seja só imprime se você for cadastrar na segunda vez na mesma data.
					*					
					****************************************************************************************/
					
					for($day= 1; $day <= 5; $day++) {
						$d = strtotime($year ."W". $week . $day);
						$d = $dtCalendar = date('d/m/Y', $d);
					
						mysql_select_db($database_conecta, $conecta);
						$query_resultRod = "SELECT * FROM calendario WHERE calendar_responsavel = '1' AND calendar_data = '".$d."' ORDER BY calendar_id DESC" ;
						$resultRod = mysql_query($query_resultRod, $conecta) or die(mysql_error());
						$row_resultRod = mysql_fetch_assoc($resultRod);
						$totalRows_resultRod = mysql_num_rows($resultRod);
							echo "<div class='semanal dt".date ('Y-m-d')."'>";
							if ($totalRows_resultRod > 0 ){
								 while ($row_resultRod = mysql_fetch_array($resultRod)) {
									echo "<p>" .$row_resultRod['calendar_cliente'] ." - " .$row_resultRod['calendar_descricao']. "</p> ";
								}
							
							}else{
								echo " - ";
							}
								
							echo "</div>";
						}
					
					?>
			</div>

			<div class="colaboradores">
				<div class="funcionarios">
					<h4>Richard Garcia</h4>
				</div>
                <?php
					
					/****************************************************************************************
					* COLABORADOR RICHARD
					*
					*  Abaixo é criado um Loop para as montar as .divs conforme o loop (For)
					*  Também abaixo encontramos variavéis, que fazem conexão com o banco de dados  
					*  temos também uma Query em SQL cujo objetivo é retornar o valor conforme 
					*  a data cadastrada e o código do colaborador.
					*
					*  Temos uma condição que SE o número de registros for maior que 0 então
					*  imprimir todos os resultados do banco de dados referente a consulta, 
					*  criada. Caso ao contrário preencher com um hífen.
					*
					*  *PROBLEMA APRESENTADO*
					*  Ao inserir um registro no banco de dados ele não exibe na hora que cadastra, 
					*  somente quando faz a segunda inserção: Exemplo se você for cadastrar no dia 25/12
					*  ele não vai aparecer na primeira vez, somente na segunda vez na mesma data
					*  Ou seja só imprime se você for cadastrar na segunda vez na mesma data.
					*					
					****************************************************************************************/
				
					for($day= 1; $day <= 5; $day++) {
						$d = strtotime($year ."W". $week . $day);
						$d = $dtCalendar = date('d/m/Y', $d);
					
						mysql_select_db($database_conecta, $conecta);
						$query_resultRich = "SELECT * FROM calendario WHERE calendar_responsavel = '2' AND calendar_data = '".$dtCalendar."'";
						$resultRich = mysql_query($query_resultRich, $conecta) or die(mysql_error());
						$row_resultRich = mysql_fetch_assoc($resultRich);
						$totalRows_resultRich = mysql_num_rows($resultRich);					
					
						echo "<div class='semanal dt".date ('Y-m-d')."'>";
						if ($totalRows_resultRich > 0){
							while ($row_resultRich = mysql_fetch_assoc($resultRich)) {
				    			echo "<p>" .$row_resultRich['calendar_cliente'] ." - " .$row_resultRich['calendar_descricao']. "</p> ";
							}
							
							}else{
								echo " - ";
							}
								
							echo "</div>";
						}					
						
				?>
			</div>

			<div class="colaboradores">
				<div class="funcionarios">
					<h4>Regiane Guzzon</h4>
				</div>
                <?php
				
					/****************************************************************************************
					* COLABORADOR REGIANE
					*
					*  Abaixo é criado um Loop para as montar as .divs conforme o loop (For)
					*  Também abaixo encontramos variavéis, que fazem conexão com o banco de dados  
					*  temos também uma Query em SQL cujo objetivo é retornar o valor conforme 
					*  a data cadastrada e o código do colaborador.
					*
					*  Temos uma condição que SE o número de registros for maior que 0 então
					*  imprimir todos os resultados do banco de dados referente a consulta, 
					*  criada. Caso ao contrário preencher com um hífen.
					*
					*  *PROBLEMA APRESENTADO*
					*  Ao inserir um registro no banco de dados ele não exibe na hora que cadastra, 
					*  somente quando faz a segunda inserção: Exemplo se você for cadastrar no dia 25/12
					*  ele não vai aparecer na primeira vez, somente na segunda vez na mesma data
					*  Ou seja só imprime se você for cadastrar na segunda vez na mesma data.
					*					
					****************************************************************************************/

					for($day= 1; $day <= 5; $day++) {
						$d = strtotime($year ."W". $week . $day);
						$d = $dtCalendar = date('d/m/Y', $d);									
					
						mysql_select_db($database_conecta, $conecta);
						$query_resultReg = "SELECT calendar_data, calendar_cliente, calendar_descricao FROM calendario WHERE calendar_responsavel = '3' AND calendar_data = '".$dtCalendar."'";
						$resultReg = mysql_query($query_resultReg, $conecta) or die(mysql_error());
						$row_resultReg = mysql_fetch_assoc($resultReg);
						$totalRows_resultReg = mysql_num_rows($resultReg);			
					
						echo "<div class='semanal dt".date ('Y-m-d')."'>";
						if ($totalRows_resultReg > 0){
							while ($row_resultReg = mysql_fetch_assoc($resultReg)) {
				    			echo "<p>" .$row_resultReg['calendar_cliente'] ." - " .$row_resultReg['calendar_descricao']. "</p> ";
							}
							
						}else{
								echo " - ";
						}
								
							echo "</div>";
						}
					
				?>
			</div>

			<div class="colaboradores">
				<div class="funcionarios">
					<h4>Nelson Macedo</h4>
				</div>
                
                <?php 
				
					/****************************************************************************************
					* COLABORADOR NELSON
					*
					*  Abaixo é criado um Loop para as montar as .divs conforme o loop (For)
					*  Também abaixo encontramos variavéis, que fazem conexão com o banco de dados  
					*  temos também uma Query em SQL cujo objetivo é retornar o valor conforme 
					*  a data cadastrada e o código do colaborador.
					*
					*  Temos uma condição que SE o número de registros for maior que 0 então
					*  imprimir todos os resultados do banco de dados referente a consulta, 
					*  criada. Caso ao contrário preencher com um hífen.
					*
					*  *PROBLEMA APRESENTADO*
					*  Ao inserir um registro no banco de dados ele não exibe na hora que cadastra, 
					*  somente quando faz a segunda inserção: Exemplo se você for cadastrar no dia 25/12
					*  ele não vai aparecer na primeira vez, somente na segunda vez na mesma data
					*  Ou seja só imprime se você for cadastrar na segunda vez na mesma data.
					*					
					****************************************************************************************/
				
					for($day= 1; $day <= 5; $day++) {
						$d = strtotime($year ."W". $week . $day);
						$d = $dtCalendar = date('d/m/Y', $d);
                
						mysql_select_db($database_conecta, $conecta);
						$query_resultNel = "SELECT calendar_data, calendar_cliente, calendar_descricao FROM calendario WHERE calendar_responsavel = '4' AND calendar_data = '".$dtCalendar."'";
						$resultNel = mysql_query($query_resultNel, $conecta) or die(mysql_error());
						$row_resultNel = mysql_fetch_assoc($resultNel);
						$totalRows_resultNel = mysql_num_rows($resultNel);				
						
						echo "<div class='semanal dt".date ('Y-m-d')."'>";
							if ($totalRows_resultNel > 0){
							while ($row_resultNel = mysql_fetch_assoc($resultNel)) {
				    			echo "<p>" .$row_resultNel['calendar_cliente'] ." - " .$row_resultNel['calendar_descricao']. "</p> ";
							}
							
						}else{
								echo " - ";
						}
								
							echo "</div>";
						}
					
				?>                
			</div>

			<div class="colaboradores">
				<div class="funcionarios">
					<h4>Walter Moreira</h4>
				</div>
				<?php
				
					/****************************************************************************************
					* COLABORADOR WALTER
					*
					*  Abaixo é criado um Loop para as montar as .divs conforme o loop (For)
					*  Também abaixo encontramos variavéis, que fazem conexão com o banco de dados  
					*  temos também uma Query em SQL cujo objetivo é retornar o valor conforme 
					*  a data cadastrada e o código do colaborador.
					*
					*  Temos uma condição que SE o número de registros for maior que 0 então
					*  imprimir todos os resultados do banco de dados referente a consulta, 
					*  criada. Caso ao contrário preencher com um hífen.
					*
					*  *PROBLEMA APRESENTADO*
					*  Ao inserir um registro no banco de dados ele não exibe na hora que cadastra, 
					*  somente quando faz a segunda inserção: Exemplo se você for cadastrar no dia 25/12
					*  ele não vai aparecer na primeira vez, somente na segunda vez na mesma data
					*  Ou seja só imprime se você for cadastrar na segunda vez na mesma data.
					*					
					****************************************************************************************/
                
					for($day= 1; $day <= 5; $day++) {
						$d = strtotime($year ."W". $week . $day);
						$d = $dtCalendar = date('d/m/Y', $d);
                
						mysql_select_db($database_conecta, $conecta);
						$query_resultWal = "SELECT calendar_data, calendar_cliente, calendar_descricao FROM calendario WHERE calendar_responsavel = '5' AND calendar_data = '".$dtCalendar."'";
						$resultWal = mysql_query($query_resultWal, $conecta) or die(mysql_error());
						$row_resultWal = mysql_fetch_assoc($resultWal);
						$totalRows_resultWal = mysql_num_rows($resultWal);				
						
						echo "<div class='semanal dt".date ('Y-m-d')."'>";
							if ($totalRows_resultWal > 0){
								while ($row_resultWal = mysql_fetch_assoc($resultWal)) {
				    				echo "<p>" .$row_resultWal['calendar_cliente'] ." - " .$row_resultWal['calendar_descricao']. "</p> ";
								}
							
							}else{
								echo " - ";
							}									
							
							echo "</div>";
							
							}					
				?>
			</div>

			<div class="colaboradores">
				<div class="funcionarios">
					<h4>Funcionario Novo</h4>
				</div>
				<div class="segunda">
				</div>
				<div class="terca">
				</div>
				<div class="quarta">
				</div>
				<div class="quinta">
				</div>
				<div class="sexta">
				</div>
			</div>
		</div>                              
</body>
</html>
<?php mysql_free_result($listRespons); ?>



Abraços a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mal em gerar códigos!

Como tentar te ajudar em quase 600 linhas de código.

Abandone esta prática, dificilmente pela web inteira você ira achar alguém que te da suporte a códigos gerados pelo Dreamwaver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que vi, a rotina é a mesma para todo colaborador, certo? Unica coisa que muda é o ID do select. Neste caso, guarde a rotina inteira em uma função e passe como parâmetro apenas o ID. Desta maneira, facilita até sua manutenção no futuro, cara!

// * Exemplo
function buscaInfoColaborador($idColaborador){
    // * Toda a rotina vai aqui, aí quando chegar na hora do select WHERE id =, você passa o $idColaborador
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola MayKel-ctba, muito obrigado por sua contribuição vou implementar a mesma e qualquer coisa eu dou um feedback aqui no fórum.

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bom dia Pessoal, tudo bem?


Eu consegui melhorar meu código comparado ao anterior que já tinha postado, mais quando eu executo o mesmo acima ele demora para carregar as respostas.

Gostaria de saber o que estou fazendo errado. O que eu posso fazer para melhorar o código acima e aplicação ficar mais rápida. Estarei abaixo enviando o código.


Desde já agradeço a atenção de todos.


Abraços.




<?php
$year = (isset($_GET['year'])) ? $_GET['year'] : date("Y");
$week = (isset($_GET['week'])) ? $_GET['week'] : date('W');
if($week > 52) {
$year++;
$week = 1;
} elseif($week < 1) {
$year--;
$week = 52;
}

$server = $_SERVER['SERVER_NAME'];
$endereco = $_SERVER ['REQUEST_URI'];
$url = "Location: http://" . $server . $endereco;
$_SESSION['page'] = $url;

?>
<?php
function buscaInfoColaborador($idColaborador){
$year = (isset($_GET['year'])) ? $_GET['year'] : date("Y");
$week = (isset($_GET['week'])) ? $_GET['week'] : date('W');

if($week < 10) {
$week = '0'. $week;
}

for($day= 1; $day <= 5; $day++) {
$d = strtotime($year ."W". $week . $day);
$dtCalendar = date('d/m/Y', $d);

echo ("<div class='semanal dt".$dtCalendar."'>\n");

include('conexao.php');
$sql = "SELECT calendar_cliente, calendar_descricao FROM calendario WHERE calendar_responsavel = '".$idColaborador."' AND calendar_data = '".$dtCalendar."'";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "<p>" .$row["calendar_cliente"]. " - " .$row["calendar_descricao"]. "</p>";
}
} else {
echo "-";
}
mysqli_close($conn);
echo ("</div> \n");
}

}
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sistema de Jobs - Brandcompany</title>
<link rel="stylesheet" type="text/css" href="style.css">
<style type="text/css" media="screen">
.abas a.calendar {background: #d71f27; color:#fff; padding: 1%; width: 5%; margin: 0 0.15% 1%; font: normal 16px 'Calibri';}
<?php
$verificames = date('m');
echo ".meses ul li .mes".$verificames ."{background:#d71f27; color: #fff;}"
?>
</style>
</head>

<body>
<header>
<h1>Sistema de Jobs</h1>
<img src="images/logotipo-brandcompany.gif" alt="Brandcompany">
</header>

<div class="funcoes">
<div class="abas">
<a href="index.php" title="Calendário" class="calendar">Calendário</a>
<a href="novos-jobs.php" title="Novos Jobs" class="newjobs">Novos Jobs</a>
</div>

<div class="meses">
<ul>
<li><a href="" title="Janeiro" class="mes01">JAN</a></li>
<li><a href="" title="Fevereiro" class="mes02">FEV</a></li>
<li><a href="" title="Março" class="mes03">MAR</a></li>
<li><a href="" title="Abril" class="mes04">ABR</a></li>
<li><a href="" title="Maio" class="mes05">MAI</a></li>
<li><a href="" title="Junho" class="mes06">JUN</a></li>
<li><a href="" title="Julho" class="mes07">JUL</a></li>
<li><a href="" title="Agosto" class="mes08">AGO</a></li>
<li><a href="" title="Setembro" class="mes09">SET</a></li>
<li><a href="" title="Outubro" class="mes10">OUT</a></li>
<li><a href="" title="Novembro" class="mes11">NOV</a></li>
<li><a href="" title="Dezembro" class="mes12">DEZ</a></li>
</ul>
</div>

<!-- Formulário de atividades diárias -->
<form name="form" action="insert.php" method="POST">
<input name="id" type="hidden" value="">
<label>Data<input name="data" type="text" value="/<?php echo date ('m/Y'); ?>" size="8" maxlength="12" placeholder="Data" autofocus></label>
<label> Responsável

<select name="colaboradores">
<option value="1">Rodrigo Vieira</option>
<option value="2">Richard Garcia</option>
<option value="3">Regiane Guzzon</option>
<option value="4">Nelson Macedo</option>
<option value="5">Walter Moreira</option>
</select>
</label>

<label>
Cliente
<select name="cliente">
<option value="Banco Sofisa">Banco Sofisa</option>
<option value="Brandcompany">Brandcompany</option>
<option value="BV20">BV20</option>
<option value="Cinelli Adv">Cinelli Adv</option>
<option value="Cumulus">Cumulus</option>
<option value="DM Serv">DM Serv</option>
<option value="Fairline">Fairline</option>
<option value="Gerir">Gerir</option>
<option value="HCM">HCM</option>
<option value="HUGO">HUGO</option>
<option value="HMI">HMI</option>
<option value="HUGO">HUGO</option>
<option value="HUTRIN">HUTRIN</option>
<option value="HRPP">HRPP</option>
<option value="Maternidade">Maternidade</option>
<option value="Ihouse">Ihouse</option>
<option value="IICS-CEU">IICS-CEU</option>
<option value="Insights">Insights</option>
<option value="Law Consulting">Law Consulting</option>
<option value="Leal Cotrim">Leal Cotrim</option>
<option value="Salerno">Salerno</option>
<option value="Sofisa Direto">Sofisa Direto</option>
<option value="Sunstate Bank">Sunstate Bank</option>
<option value="Taler">Taler</option>
<option value="WFaria">WFaria</option>
</select>
</label>
<label>Descrição do Job<input type="input" name="Job" value="" placeholder="Digite a descrição do Job realizado" required></label>
<input type="submit" name="submit" value="OK" id="btnOk">
</form>

<form name="busca" action="search.php" method="get" id="frmbuscar">
<label><input name="palavra" id="search" placeholder="Buscar" required></label>
</form>

<div class="controles">
<h2>
<?php

setlocale(LC_ALL, "pt_BR", "ptb");
echo strftime("%B");
?>
</h2>

<div class="nav">
<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week == 52 ? 1 : 1 + $week).'&year='.($week == 52 ? 1 + $year : $year); ?>" title="Proximo">
<span class="btn_next">➜</span>
<span class="tlinkr">Próximo</span>
</a>
<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week == 1 ? 52 : $week -1).'&year='.($week == 1 ? $year - 1 : $year); ?>" title="Anterior">
<span class="btn_back">➜</span>
<span class="tlinkl">Anterior</span>
</a>
</div>
</div>
</div>

<!-- CALENDÁRIO SEMANAL COM TODOS OS RESULTADOS VINDO DO BANCO DE DADOS -->
<div class="calendario">

<!-- Barra de títulos -->
<div class="titulos">

<div class="funcionarios">
<h3>Responsável</h3>
</div>

<?php

if($week < 10) {
$week = '0'. $week;
}

for($day= 1; $day <= 5; $day++) {
$d = strtotime($year ."W". $week . $day);

echo "<div class='semanal'>"
."<h3>" .strftime('%a', $d) ." - " .date ('d/m', $d) ."</h3>"
."</div>";
}

?>
</div>

<div class="colaboradores">

<div class="funcionarios">
<h4>Rodrigo Vieira</h4>
</div>
<?php buscaInfoColaborador("1"); ?>
</div>

<div class="colaboradores">
<div class="funcionarios">
<h4>Richard Garcia</h4>
</div>
<?php buscaInfoColaborador("2"); ?>
</div>

<div class="colaboradores">
<div class="funcionarios">
<h4>Regiane Guzzon</h4>
</div>
<?php buscaInfoColaborador("3"); ?>
</div>

<div class="colaboradores">
<div class="funcionarios">
<h4>Nelson Macedo</h4>
</div>
<?php buscaInfoColaborador("4"); ?>
</div>

<div class="colaboradores">
<div class="funcionarios">
<h4>Walter Moreira</h4>
</div>
<?php buscaInfoColaborador("5"); ?>
</div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá pra melhorar mais ainda, mas já foi um baita avanço!

Você está incluindo um conexão.php a cada rodada do FOR. Inclua ele lá no começo do código, só uma vez. Isso já deve ajudar um pouco na sobrecarga (linha 33).

Acho que deve ter algo errado também com a consulta rodar dentro desse for... deve estar causando uma sobrecarga.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado mais uma vez MayKel-Ctba, mais quando eu incluo a linha 33 no começo do código me exibe o seguinte erro:

Notice: Undefined variable: conn in C:\xampp\htdocs\jobs\index.php on line 35

Abaixo a linha 35

$result = mysqli_query($conn, $sql);

E muito obrigado por me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites
Então sobre o for eu vou explicar de uma forma visual.

O que acontece é o seguinte esse FOR é utilizado para fazer a impressão de Divs onde vai conter em cada Div o resultado da busca.

Visualizar a imagem que deixo em anexo.


Fico no aguardo, de um feedback dessa galera ninja deste fórumsistema-de-jobs.png.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Galera do Fórum tudo bem?

Será que é tão complexo este meu problema?

Estou ainda tentando desvendar o mistério.

Abraços.

Esse meu caso será que tem solução?

Abraços

Eu imaginava que esse fórum, o pessoal consegui-se resolver uma solução dessa acima.

Mais to vendo que tenho que vou te que torrar de vez meu cerebro para concluir.

Mesmo assim obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é seu amigo ;)

Notice: Undefined variable: conn in C:\xampp\htdocs\jobs\index.php on line 35

A variavel $conn é chamada na linha 35, mas ela é declarada em alguma linha anterior a 35 ?

Essa $conn vem de algum include ?

Ele é requisitado antes dessa linha ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.