Avatar billede fixbabe Nybegynder
30. oktober 2005 - 21:36 Der er 17 kommentarer og
1 løsning

mysql timer

Hvordan laver jeg en timer funktion med php og mysql?

Planen er at en person skal kunne indtaste oplysninger og det skal vises på siden i 5 min hvorefter den enten skal slettes eller lign (kunne sikkert lave et felt der hedder "aktiv" eller lign..
Avatar billede bromer Nybegynder
30. oktober 2005 - 21:54 #1
Du kan vel oprette et felt i databasen (kaldt det created) og så kun vælge de rækker hvor feltet er yngre end 5 min. Som i:

SELECT * FROM table WHERE created < NOW()-INTERVAL(5 'mins')

eller hvordan det nu er INTERVAL funktionen ser ud.
Avatar billede phliplip Nybegynder
30. oktober 2005 - 21:54 #2
Hej Fixabe!

Du skal bare lave et felt i din tabel med oplysninger, kald det timestamp og det skal være bigint(12)

i PHP
$timestamp = time();

$timestamp indsætter du så sammen med de andre data i tabellen..

Og når du skal have hentet data til visning.. så bruger du følgende:

$timestamp_diff = time()-300; // Hvor 300 er sekunder og svarende til 5 minutter

I dit kald til DB'en skal du bruge en

WHERE timestamp>'".$timestamp_diff."'
Avatar billede phliplip Nybegynder
30. oktober 2005 - 21:55 #3
Bromer: LoL.. lang tid siden de gamle NetCoders.dk / Asp.dk dage - he he
Avatar billede bromer Nybegynder
30. oktober 2005 - 21:56 #4
SELECT * FROM table WHERE DATE_ADD(created, INTERVAL 5 MINUTE) > NOW();

Sådan må det være, eller hvad?
Avatar billede fixbabe Nybegynder
30. oktober 2005 - 21:59 #5
nice med svar men i er nød til at ud dybe hva funktionerne gør så jeg ikke bare smider det ind uden at vide hva de gør :)
Avatar billede phliplip Nybegynder
30. oktober 2005 - 22:26 #6
--indsæt--
<?
$timestamp = time();
mysql_query("INSERT INTO table (id, timestamp, info1, info2, info3) VALUES ('', '".$timestamp."', 'tekst', 'tekst', 'tekst'");
?>
------------

--udskriv--
<?
$timestamp_diff = time()-300;
$result = mysql_query("SELECT * FROM table WHERE timestamp>='".$timestamp_diff."' ORDER BY timestamp DESC");
if(mysql_num_rows($result) > 0) {
  while($row = mysql_fetch_assoc($result)) {
    echo("[Skrevet: ".date("d-m-Y", $row['timestamp'])."] ".$row['info1']);
  }
}
?>
-------------
Avatar billede phliplip Nybegynder
30. oktober 2005 - 22:28 #7
Ups.. der skal lige et ) ind mellem [ tekst' |her| "); ]

Sådan:
mysql_query("INSERT INTO table (id, timestamp, info1, info2, info3) VALUES ('', '".$timestamp."', 'tekst', 'tekst', 'tekst')");
Avatar billede phliplip Nybegynder
30. oktober 2005 - 22:32 #8
time() returnerer UNIX-timestamp som er antal sekunder fra en dato i 1970 som jeg aldrig kan huske ;) he he
Avatar billede fixbabe Nybegynder
30. oktober 2005 - 22:45 #9
Flyttede $timestamp = time(); til add.php og lavede en "hidden" med echo da det andet ikke virkede. så nu må vi se om den tæller ned :)
Avatar billede phliplip Nybegynder
30. oktober 2005 - 23:26 #10
Fik du det til at virke?
Avatar billede fixbabe Nybegynder
31. oktober 2005 - 14:18 #11
ja den gemmer tiden, nu skal jeg have den til at liste dem
Avatar billede fixbabe Nybegynder
31. oktober 2005 - 14:29 #12
Jeg kan ikke lige få det du har pastet til at virke, så jeg smider lige min kode så kan det være du kan se hva fejlen er

<?
include('connect.php');
$timestamp_diff = time()-300;
$res = mysql_query('select * from seek where type = "1on1" order by id desc limit '.$limit.'') or die(mysql_error());
?>
<table border="0" cellspacing="1" width="100%" height="1" style="border-top-width: 0; border-bottom-width:0">
        <?
while ($info = mysql_fetch_array($res)) {
    ?>
  <-- bla kode bla -->
<?
}
echo '</table>';
?>


<<slut>>
Jeg vil gerne have tiden læst ud med iform af "time" ala <? echo $info['time']; ?>
Avatar billede fixbabe Nybegynder
31. oktober 2005 - 17:48 #13
hmm tråd gået kold?
Avatar billede fixbabe Nybegynder
31. oktober 2005 - 20:01 #14
Er der ingen der kan hjælpe??
Avatar billede phliplip Nybegynder
31. oktober 2005 - 20:41 #15
<?
include('connect.php');
$timestamp_diff = time()-300;
$res = mysql_query('select *, timestamp AS time from seek where timestamp>"'.$timestamp_diff.'" type = "1on1" order by id desc limit '.$limit) or die(mysql_error());
?>
<table border="0" cellspacing="1" width="100%" height="1" style="border-top-width: 0; border-bottom-width:0">
        <?
while ($info = mysql_fetch_array($res)) {
  echo(date("dmY", $info['time']));
    ?>
  <-- bla kode bla -->
<?
}
echo '</table>';
?>

Såårn ?
Avatar billede fixbabe Nybegynder
31. oktober 2005 - 20:44 #16
Jeg tog mig tid og kiggede din kode igennem, og fandt ud af det ikke var så svært aligevel :) er faktisk færdig, mangler kun så den skriver hva kl posten er oprettet. så hvis du gider smide et svar så kan vi lukke :D
Avatar billede phliplip Nybegynder
31. oktober 2005 - 22:27 #17
echo(date("d-m-Y H:i:s", $info['time']));
Avatar billede fixbabe Nybegynder
31. oktober 2005 - 22:29 #18
og et link så du kan se www.seekcs.net
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester