Avatar billede rix Novice
30. oktober 2010 - 22:01 Der er 26 kommentarer og
1 løsning

hent alle poster som er endten opdateret eller oprettet inden for de sendeste 5 min

jeg  har en tabel som har en dato + tid sat ind den viser endten hvor når den er oprettet eller opdateret men jeg ville gerne vise alle dem der er det inden for 5 min fra min database hvordan kan man lige det har slev prøvet at lave det men det virker bare ikke
Avatar billede kentora Nybegynder
30. oktober 2010 - 22:04 #1
prøv med et nyt felt med attributen on update current timestamp, eller noget i den stil. :)
Avatar billede rix Novice
30. oktober 2010 - 22:11 #2
den forstod jeg ikke kan du ikek komme med en eks. ??
Avatar billede kentora Nybegynder
30. oktober 2010 - 22:15 #3
Det hedder et eks.. :)

(går ud fra du bruger mysql)
Gå ind i phpmyadmin, og vælg din database, og tabel. Så skal du indsætte et nyt felt i tabellen. Kald den update eller lign. scroll hen af siden til "attributer". Så skal du vælge on_update_current_timestamp mener jeg den hedder.

Feltet vil nu automatisk opdateres når du ændrer noget i tabellen.

Du kan nu bruge en timestamp funktion i php til at finde alle hvor update >= end det timestamp du har lavet i PHP. :)
Avatar billede rix Novice
30. oktober 2010 - 23:55 #4
hmm en måde man kunne lave det på men hvis det kunne laves på min måde altså at bare hente de seneste poster der er skrevet inden for 5 min ved at kun bruge en DATE TIME post da hvis jeg skulle bruge din eks skulle jeg lave en masse andre ting om
Avatar billede coderdk Praktikant
31. oktober 2010 - 00:19 #5
Du har al informationen, så vidt jeg kan læse, du skal bare lave en query. Hvis dit felt er DATETIME så prøv:

SELECT * FROM dintabel WHERE NOW() < DATE_ADD(opdateret_oprettet_felt, INTERVAL 5 MINUTE)
Avatar billede rix Novice
31. oktober 2010 - 00:29 #6
hej jeg har lavet den sådan her
mysql_query("SELECT * FROM ".DB_PATH."see_that WHERE NOW() < DATE_ADD(time, INTERVAL 5 MINUTE)") or die(mysql_error());

men selv om der er gået over 5 min viser den stadig en oplysning
Avatar billede coderdk Praktikant
31. oktober 2010 - 00:34 #7
Prøv lige

mysql_query("SELECT * FROM ".DB_PATH."see_that WHERE NOW() < DATE_ADD(`time`, INTERVAL 5 MINUTE)") or die(mysql_error());

Jeg tror "time" er et reserveret ord i SQL ;P
Avatar billede rix Novice
31. oktober 2010 - 00:44 #8
nej den er der stadig har rodet lidt med det men intet virker
Avatar billede coderdk Praktikant
31. oktober 2010 - 00:46 #9
Og `time`-feltet er af datatypen DATETIME?
Avatar billede rix Novice
31. oktober 2010 - 00:48 #10
jep har lige tjekket det og ved data type står der datetime og tiden bliver gemt som 2010-10-31 12:43:20
Avatar billede coderdk Praktikant
31. oktober 2010 - 00:54 #11
Så burde den query uden tvivl virke.
Avatar billede rix Novice
31. oktober 2010 - 00:59 #12
ja det undre også mig :( men har den samme du viste til sidst i nu og den virser en indlæg der er fra 2010-10-31 12:43:20
Avatar billede coderdk Praktikant
31. oktober 2010 - 01:10 #13
Strange. Prøv lige at køre denne for at se tiden på serveren:

$row = mysql_fetch_assoc( mysql_query( "SELECT NOW() AS kl_er_nu" ) );
die( "Klokken er nu: " . $row['kl_er_nu'] );
Avatar billede rix Novice
31. oktober 2010 - 01:22 #14
den siger
Klokken er nu: 2010-10-31 01:20:57

og det passer i føgle med min com :(
Avatar billede coderdk Praktikant
31. oktober 2010 - 01:25 #15
Så ved jeg ikke hvad der kan være galt. Det burde virke, jeg bruger ofte lignende queries.

Prøv:

$tiden = date("Y-m-d H:i:s", strtotime( "-5 minute" ) );
mysql_query("SELECT * FROM ".DB_PATH."see_that WHERE '". $tiden ."' < `time`") or die(mysql_error());
Avatar billede webweaver Praktikant
31. oktober 2010 - 02:16 #16
Jeg plejer at lave udtrækket sådan her:

mysql_query("SELECT * FROM table WHERE date_add(time,interval 5 MINUTE) < NOW()") or die(mysql_error());

Og så som nævnt, et datetime felt.
Og feltet skal navngives time.

Det virker hver gang for mig.

Hvis det ikke virker stadig, så har du en fejl et andet sted i din kode.
Avatar billede coderdk Praktikant
31. oktober 2010 - 02:22 #17
Underligt. Jeg har lige fået en mail om at webweaver har smidt en kommentar - Men den er der ikke?
Ah og, webweaver - Den SQL vil give dig alle der er ældre end 5 minutter ;)
Avatar billede webweaver Praktikant
31. oktober 2010 - 02:23 #18
Jeg laver altid mit udtræk således;

mysql_query("SELECT * FROM table WHERE date_add(time,interval 5 MINUTE) > NOW()") or die(mysql_error());

Feltet kaldes time og stal være datetime, som nævnt længere oppe.

Det virker altid for mig.
Så hvis det ikke virker for dig, ligger fejlen et andet sted i din kode.
Avatar billede coderdk Praktikant
31. oktober 2010 - 02:24 #19
Whoa, så dukkede indlægget op?! Strange. Må være min cache?!

Og jeg skrev vist forkert - Den finder bare dem hvor tidspunktet plus 5 minutter er før lige nu ;)
Avatar billede webweaver Praktikant
31. oktober 2010 - 02:25 #20
Okay, det var pænt underligt :S

Jeg postede et indlæg, men det dukkede aldrig op?
Jeg ventede lidt for at se om der var forsinkelse på serveren...
Men naah. Så skrev indlægget igen, og det dukkede heller ikke op :S Nu er de begge 2 lige dukket op, efter du har skrevet et indlæg coderdk. Mystisk :S

Ja det er rigtigt, jeg lavede en fejl i første indlæg.
Rettet til i andet :)
Avatar billede rix Novice
31. oktober 2010 - 02:47 #21
har lige lavet en hurtig test af den og det ser sku ud til at virke :D så hvis du ville have point så lav en svar og hvis det ikke er nok har du fortjent flere :D tak for hjælpen
Avatar billede webweaver Praktikant
31. oktober 2010 - 02:58 #22
Hvem af os snakker du til? :)
Avatar billede rix Novice
31. oktober 2010 - 02:00 #23
ups kan se du har skrevet mens jeg testet coderdk det var ham jeg skrev til men tak for din input
Avatar billede webweaver Praktikant
31. oktober 2010 - 02:01 #24
Det var så lidt :-)
Avatar billede webweaver Praktikant
12. november 2010 - 23:25 #25
coderdk husk at smide et svar, så du kan få dine point :)
(den er vidst lige smuttet i farten)

God weekend.
Avatar billede rix Novice
28. december 2010 - 21:10 #26
så lige denne her havde glemt den srry men han ser ikke ud til at ligge en svar såå jeg snupper dem :D med mindre du webweawer ville have dem så send en pm så finder vi ud af noget :D
Avatar billede webweaver Praktikant
29. december 2010 - 03:20 #27
Nej tak, det går nok :-)
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