Jump to content


Wallace Locus

Member Since 18/01/2009
Offline Last Active 31/01/2009, 00:00
-----

Posts I've Made

In Topic: Fazer Diferença De Horas Que Estão No Mysql, Mas...

29/01/2009, 16:30

este post já ta arrumado :)
n descobri a solução, n conseguir inserir duas horas no mesmo registo.
patient.
fica pra outra altura.

claro, agradecer a paciência de boa malta q está disponivel pra partilhar conhecimento...isso é mt bom!...apesar de n ter dado com a solução.
cool Brasil! :)

In Topic: Fazer Diferença De Horas Que Estão No Mysql, Mas...

29/01/2009, 02:26

sim vou fazer, mas antes quero saber como resolver este dilema...
é possivel ou nao nestas circunstancias salvar as tais datas no mesmo registo?
se sabem me digam...
aprender a resolver e nao a reiniciar ;)


se não é possivel resolver, ou seja, gravar no mesmo registo com processo "login-pica-logout"
...
entao começar de novo com outra logica...!
se é possivel, ir atrás da solução...!

alinham?

In Topic: Fazer Diferença De Horas Que Estão No Mysql, Mas...

28/01/2009, 22:24

caros atenciosos :) thanks pelas dicas...mas continuo a não dar com a solução.
programinha simples em php tá a custar atinar...puxa!

vi um tutorial no site do mysql e tentei com:

$sql="INSERT INTO persons (nome, semana, dia, mes, ano, turno, entra) VALUES ('".$_POST[nome]."', '".$_POST[semana]."','".$_POST[dia]."', '".$_POST[mes]."', '".$_POST[ano]."', '".$_POST[turno]."', '".$_POST[entra]."')
ON DUPLICATE KEY UPDATE VALUES('$_POST[sai]')";


mas não dá. enfim...já tou a ficar mole pra uma porcaria tão simples...mas quero encontrar a solução xxxxxx, ai sim...vou encontrar...!
digam algo...!

sobre a questão de saber se está a trabalhar ou não não relevante para agora, mas sim muito relevante gravar a hora de entrada e hora de saida no mesmo registo, coisa simples que estou a demorar, mais do q o habitual, a descobrir e aprender.

de momento, tenho os codigos assim:
manha.php

<body>
<?php
// Login/sessões
// link_1.php

// ligar à base de dados
//include("connect.php");

//include("auth.php");
//include("nav.php");
session_start();
if(!isset($_SESSION['username'])) {
echo 'Acesso interdito <BR>';
include('auth.php');
exit;
}
else {
include("auth.php");
include("nav.php");

//echo "<center><br>Bem vindo - " . $_SESSION['username'] . "</center>";
// fechar ligação mysql
mysql_close();
}
?>
<center>
<h2>Gestão de entradas e saídas</h2>
</center>
<font face=arial, size=1>
</font>
<script Language="JavaScript">
<!--
mydate = new Date();
myday = mydate.getDay();
mymonth = mydate.getMonth();
myweekday= mydate.getDate();
weekday= myweekday;

if(myday == 0)
day = " Domingo, "

else if(myday == 1)
day = " Segunda - Feira, "

else if(myday == 2)
day = " Terça - Feira, "

else if(myday == 3)
day = " Quarta - Feira, "

else if(myday == 4)
day = " Quinta - Feira, "

else if(myday == 5)
day = " Sexta - Feira, "

else if(myday == 6)
day = " Sábado, "

if(mymonth == 0)
month = "Janeiro "

else if(mymonth ==1)
month = "Fevereiro "

else if(mymonth ==2)
month = "Março "

else if(mymonth ==3)
month = "Abril "

else if(mymonth ==4)
month = "Maio "

else if(mymonth ==5)
month = "Junho "

else if(mymonth ==6)
month = "Julho "

else if(mymonth ==7)
month = "Agosto "

else if(mymonth ==8)
month = "Setembro "

else if(mymonth ==9)
month = "Outubro "

else if(mymonth ==10)
month = "Novembro "

else if(mymonth ==11)
month = "Dezembro "

document.write("<font face=arial, size=3><center />"+ day);
document.write(myweekday+" de "+month+ "</font>");
// -->
</script>

<?php
$mes["01"] = "Janeiro";
$mes["02"] = "Fevereiro";
$mes["03"] = "Março";
$mes["04"] = "Abril";
$mes["05"] = "Maio";
$mes["06"] = "Junho";
$mes["07"] = "Julho";
$mes["08"] = "Agosto";
$mes["09"] = "Setembro";
$mes["10"] = "Outubro";
$mes["11"] = "Novembro";
$mes["12"] = "Dezembro";

$diasemana["0"] = "Domingo";
$diasemana["1"] = "Segunda-feira";
$diasemana["2"] = "Terça-feira";
$diasemana["3"] = "Quarta-feira";
$diasemana["4"] = "Quinta-feira";
$diasemana["5"] = "Sexta-feira";
$diasemana["6"] = "Sabado";

$dia = date('d'); //Pega o dia
$semanan = date('w'); //Pega o dia da semana
$mesn = date('m'); //Pega o mês
$ano = date('Y'); //Pega o ano


$id = $_SESSION['username'];

$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("my", $con);

$sql = "select personID, nome, semana, dia, mes, ano, turno, entra, sai from persons where nome='" . $id . "' ORDER BY personID ASC";
//echo $sql;
$result = mysql_query($sql) or exit(mysql_error());

while($row = mysql_fetch_array($result))
{

$personid = $row["personID"];
$data1 = $row["entra"];
$data2 = $row["sai"];
}

?>
<center>
<div id='container'>
<fieldset name="Group1">
<legend style="background-color:#CCFFCC">Funcionário: <b><?php echo $id; ?></b></legend>
<br>
<label>Bom dia!</label>
<form id="form" name="form" action="insert.php?id=$personid" method="post">
<!--nome--><input type="hidden" name="nome" value="<?php echo $id; ?>"/>
<!--semana--><input type="hidden" name="semana" value="<?php echo $diasemana["$semanan"]?>"/>
<!--dia--><input type="hidden" name="dia" value="<?php echo $dia?>"/>
<!--mes--><input type="hidden" name="mes" value="<?php echo $mes["$mesn"]?>"/>
<!--ano--><input type="hidden" name="ano" value="<?php echo $ano?>"/>
<!--turno--><input type="hidden" name="turno" value="manha"/>
<br /><br />
<input id="entra" type="hidden" name="entra" value="" />
<input name="entrada" type="submit" value="entra" style="width: 72px; height: 47px" class="style1" onClick="data('entra');"/>
&nbsp;&nbsp;
<input id="sai" type="hidden" name="sai" value=""/>
<input name="saida" type="submit" value="sai" style="width: 72px; height: 47px" class="style2" onClick="data('sai');"/>
</form>
<br />
<br />

<!--saida: <input type="text" name="sai" value="<?php echo date('H:i:s');?>"/> <br />-->



</fieldset>
</center>
</div>
</center>
</body>



e o insert.php

<?php
session_start();

$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("my", $con);

if (!isset($_SESSION[id])){

$sql="INSERT INTO persons (nome, semana, dia, mes, ano, turno, entra) VALUES ('".$_POST[nome]."', '".$_POST[semana]."','".$_POST[dia]."', '".$_POST[mes]."', '".$_POST[ano]."', '".$_POST[turno]."', '".$_POST[entra]."')";

$query = mysql_query($sql) or die(mysql_error());

$_SESSION[id] = mysql_insert_id();

}
else {

$sql = "UPDATE persons SET sai = '".$_POST['sai']."' WHERE personID = '".$_SESSION[id]."'";
$query = mysql_query($sql) or die(mysql_error());
unset($_SESSION[id]);

}

echo "<p class='alert'>Pica efectuado! Tenha um bom dia! Nao se esqueca fazer logout! </p>";
echo "<center><a href='index.php'>voltar</a></center>";

mysql_close($con)

?>


sim, sem.Ponto tentei fazer como sugeriu...mas nao consegui.

para já quero saber como resolver o problema para como está, q é apenas a inserção de duas datas diferentes no mesmo registo.
usuario faz login, clica no botao entra, faz logout...e qd for pra sair...faz login e clica no botao sair...só isso.

sim Cab, tenho uma tabela de autenticacao. a autenticacao é atraves de sessions:

<?php
session_start();
// auth.php
// start session

include("connectDB.php");


if($_POST){
$_SESSION['username']=$_POST["username"];
$_SESSION['password']=$_POST["password"];
}

// query
$result=mysql_query("select * from users where login='" . $_SESSION['username'] . "' and password='" . $_SESSION['password'] . "'");

// número de registos
$num=mysql_num_rows($result);

// se não há registos aparece o ecrã de login.
if($num < 1){
echo "<br><br> <br><br><br> <br><br><div style='background-color:#CCFFCC'> Não está autenticado. Faça login sff.</div><br><br><b>Login</b></div>
<form method=POST action=index.php>
Utilizador: <input type=text name=\"username\"> <br />
Password: <input type=password name=\"password\">
<BR> <BR>
<input type=submit value=\" - Login - \">
</form><br><br>";

echo "<div><b>Novo funcionario</b></div>
<form method=post action=inscricao.php>
Utilizador: <input type=text name=\"nome\"><br>
Password: <input type=password name=\"pass\"><br>
<input type=submit value=\"inscrever\">
</form>";

exit;
}
?>


a database da autenticacao está assim:
`users` (
`user_id` smallint(10) NOT NULL AUTO_INCREMENT,
`login` varchar(20) COLLATE latin1_bin NOT NULL,
`password` varchar(20) COLLATE latin1_bin NOT NULL,
PRIMARY KEY (`user_id`)
)


já escrevi mt...mas o raio da solução ainda não chegou...tá mesmo pra demorar...tal assunto já aparece na 1ª resposta do google...

In Topic: Fazer Diferença De Horas Que Estão No Mysql, Mas...

28/01/2009, 00:47

Crab, creio que não viu os ultimos topicos entre mim e o sem.Ponto.
sao vários usuarios e como só há um computador, terá de ser com "autenticação-clica no bota entrar e logout" ...!
entendeu?

sei q podia ser mt melhor o codigo, mas a maneira de fazer...n poderia ser diferente com "logar-picar-deslogar" pois há apenas um computador para vários usuarios picarem o ponto.

sem.Ponto, falei bem?


pensei q tinha conseguido...mas não! :(
claro q funciona estando logado!!!

mas sendo q cada usuario tem de deslogar... oohhhhhhhhhhhhhhhhh

In Topic: Fazer Diferença De Horas Que Estão No Mysql, Mas...

28/01/2009, 00:23

caro, sem.Ponto,
é isso mesmo. como sao varias usuarios...é preciso cada um fazer o logout. entra um autentica-se e pica no entra e faz logout, vem outro faz o mesmo...Na hora de sair autenticam-se e clicam no sair! Os inputs realmente ficavam mal...agora só tem dois botoes entrar e sair!
(creio q assim o usuario ja nao engana o sistema lol)
Só falta mesmo como por no mesmo registo as horas de entrada e saida...(já q pra calcular a diferença de horas ja consegui).
entao como funcionaria pra este tipo de funcionamento? onde falha?

Espera aí...

Funciona assim:

1 - O usuário loga no sistema, pega a hora e clica no "entra".
2 - O usuário desconecta.
3 - Quando acaba o expediente o usuário loga novamente no sistema, pega a hora e clica no "sai".

É assim que funciona o seu sistema?

Porque se for assim, está explicado então porque não está funcionando...


IPB Skin By Virteq