Bug no Insert e Select
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
Discussão (11)
Carregando comentários...