Ir para conteúdo

Arquivado

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

Ramon Melo

[Resolvido] Sistema de ponto

Recommended Posts

Galera seguinte.. fiz um sistema de ponto com php + mysql, servidor que utilizo é o vertrigo (que instala php, mysql, phpmyadmin etc..) .. ontem ele teve o funcionamento normal, mas hj estranhamente só cadastrou 1 usuario.. depois zerei todo o banco de dados, e testei e cadastrou, dps qdo fui registrar outro , ja nao cadastrava mais..

Ou seja, se eu zerar o banco, ele cadastra 1 usuario , mas se eu for registrar o horario dos outros , ele nao registra.. agora está parando aqui:

if ( $status == "entrada" ) {
$adicionar_data = "insert into data(data,id_usuario,status_entrada,justificativa) values('$data',$id,'$hora','$justificativa')";
$res = mysql_query($adicionar_data);
$result = mysql_affected_rows();
if ($result < 1){
	echo '<script> history.go(-1); alert("Nao cadastrado, informe ao administrador!");</script>';
  die();
}

os campos do Banco estão todos corretos.. esse ($status == "entrada") é que ele pega os dados de um formulario , onde tem alguns radios buttons, que verifica se é entrada, saida , hora do almoço etc...

 

Segue o codigo completo::

<html>
<head>
<style>
td {font:Tahoma, Geneva, sans-serif; color:#009; font-size:20px;}
</style>
<title>Sistema de Ponto</title></head>
<body bgcolor="#32CD32">
<br /><br /><br />
<center>
<font face="Tahoma" size="+3"> Sistema de Ponto</font>
<hr />

<?php
include("funcao_calc_hora.php"); 
include ("configuracao.php");

$db = mysql_connect ($host, $login_db, $senha_db);
$basedados = mysql_select_db($database);

$data = date ('d/m/Y');
$hora = date ('H:i');
$id = $_GET['id'];
$status = $_GET['radio'];
$justificativa = $_GET['justificativa'];

$usuario = mysql_query("SELECT * FROM funcionario WHERE id='$id'") or print (mysql_error());
while($linha = mysql_fetch_array($usuario)){
$nomebanco = $linha["login"];
}

echo "<table width='200' border='1'>
  <tr>
	<td width='80'>Usuario: </td>
	<td width='110'>".$nomebanco."</td>
  </tr>
  <tr>
	<td>Data: </td>
	<td>".$data."</td>
  </tr>
  <tr>
	<td>Hora: </td>
	<td>".$hora."</td>
  </tr>
  <tr>
	  <td>Status: </td>
	  <td>".$radio."</td>
  </tr>";
if (!empty($justificativa) ) {
echo "<tr>
	  <td>Justificativa: </td>
	  <td>".$justificativa."</td>
  </tr>";
}
echo "<tr>
	<td colspan=2 align=center>Registrado!</td>
	</tr>
</table>";

//Adicionando Entrada
if ( $status == "entrada" ) {
$adicionar_data = "insert into data(data,id_usuario,status_entrada,justificativa) values('$data',$id,'$hora','$justificativa')";
$res = mysql_query($adicionar_data);
$result = mysql_affected_rows();
if ($result < 1){
	echo '<script> history.go(-1); alert("Nao cadastrado, informe ao administrador!");</script>';
  die();
}
//adicionando a data,hora,id_usuario,status e justificativa
} elseif ( $status == "saida_almoco" ) {
//Adicionando Saida para Almoço
$adicionar_data = "UPDATE DATA SET status_salmoco='$hora' WHERE data='$data' AND id_usuario='$id'";
$res = mysql_query($adicionar_data);
if (mysql_affected_rows()==0) {
	echo '<script> history.go(-1); alert("Usuario sem hora de entrada!");</script>';
}
} elseif ( $status == "chegada_almoco" ) {
//Adicionando Chegada Almoco
$adicionar_data = "UPDATE DATA SET status_calmoco='$hora' WHERE data='$data' AND id_usuario='$id'";
$res = mysql_query($adicionar_data);
if (mysql_affected_rows()==0) {
	echo '<script> history.go(-1); alert("Usuario sem hora de entrada!");</script>';
}
//Adicionando Saida
}elseif ( $status == "saida" ) {
$adicionar_data = "UPDATE DATA SET status_saida='$hora',justificativa='$justificativa' WHERE data='$data' AND id_usuario='$id'";
$res = mysql_query($adicionar_data);
if (mysql_affected_rows()==0) {
	echo '<script> history.go(-1); alert("Usuario sem hora de entrada!");</script>';
}	
}
//verificar numero de horas trabalhadas
$horas = mysql_query("SELECT status_entrada, status_salmoco, status_calmoco, status_saida FROM DATA");

while ( $sql = mysql_fetch_array($horas) ) {
//horas trabalhadas pela manhã
$horas_trab_m = diminuir_tempo($sql[status_salmoco],$sql[status_entrada]);
//horas trabalhadas pela tarde
$horas_trab_t = diminuir_tempo($sql[status_saida],$sql[status_calmoco]);
$total_horas = somar_tempo($horas_trab_m,$horas_trab_t);
}


//INSERIR TOTAL DE HORAS TRABALHADAS
$total = mysql_query("UPDATE DATA SET horas_trabalhadas='$total_horas',justificativa='$justificativa' WHERE data='$data' AND id_usuario='$id'");
?>
<br>
<a href="index.php">Voltar</a><br>
<hr />
<table border="0" cellspacing="10">
  <tr>
	<td align="center" valign="middle"><img src="img/logolarp.gif"></td>
	<td align="center" valing="middle"><img src="img/logodistrilab.gif"></td>
  </tr>
</table>
</center>
</body>
</html>

valeu galera!!! abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

KRa...

ve na sua tabela...

se ele tem um auto-increment!!

 

No myadmin, normalmente..eu crio um campo ID com o Auto-increment é a chave principal.

 

Se eu naum colocar o auto-increment ele fica igual ao que você ta falando...insere um e depois naum insere mais!!! A não ser que você informe a chave principal manualmente!!!

 

Qualquer problema posta ai!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu dei um echo em todas as variaveis pra ver se tava tudo chegando normal.. e está.. coloquei: die (mysql_error()); depois das querys

 

apareceu assim: Duplicate entry '127' for key 1

 

onde esse '127' é o unico ID que ele consegue registrar.. mas ja está como auto increment vei !! nao entendo.. o q pode ser??

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo pode estar como UNIQUE em vez de auto_increment.

Não tem nada a ver, mas acontece de misturar as vezes.

 

Posta a estrutura do seu banco de dados aqui. (Só estrutura, sem dados).

Cara apaguei os dados da tabela e zerei o auto_increment e tudo voltou a funcionar normal..(ALTER TABLE DATA AUTO_INCREMENT=1) .. mas porque isso acontece?

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

E a tabela está assim:

 

-- phpMyAdmin SQL Dump

-- version 2.11.7

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Geração: Jun 29, 2009 as 08:53 AM

-- Versão do Servidor: 5.0.51

-- Versão do PHP: 5.2.6

 

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

 

--

-- Banco de Dados: `ponto`

--

 

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

 

--

-- Estrutura da tabela `data`

--

 

CREATE TABLE IF NOT EXISTS `data` (

`id` tinyint(10) NOT NULL auto_increment,

`data` varchar(11) NOT NULL,

`id_usuario` tinyint(5) NOT NULL,

`status_entrada` varchar(20) NOT NULL,

`justificativa` varchar(200) NOT NULL,

`status_salmoco` varchar(20) NOT NULL,

`status_calmoco` varchar(20) NOT NULL,

`status_saida` varchar(20) NOT NULL,

`horas_trabalhadas` varchar(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

 

--

-- Extraindo dados da tabela `data`

--

 

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

 

--

-- Estrutura da tabela `funcionario`

--

 

CREATE TABLE IF NOT EXISTS `funcionario` (

`id` tinyint(4) NOT NULL auto_increment,

`nome_func` varchar(50) NOT NULL,

`estag_func` varchar(15) NOT NULL,

`setor` varchar(20) NOT NULL,

`hora_entrada` varchar(10) NOT NULL,

`hora_saida` varchar(10) NOT NULL,

`login` varchar(15) NOT NULL,

`senha` varchar(15) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=53 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido galera.. me informaram que por estar tinyint() so deixa 127 registros.. e falarma pra eu mudar para int(11)..

vou testar agora.. valeu galera pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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