Avatar billede steen-h Mester
17. november 2007 - 14:32 Der er 5 kommentarer og
1 løsning

Find næste tur som ikke er set

Hej

Jeg har en tabel med ture, hvis man har set dem oprettes man i en anden tabel hvis turen er nyere end 7 dage.

Nu vil jeg finde den første tur som er nyere end 7 dage og som jeg ikke har set.

Jeg har en tabel trip som har:
id som er turen
changedate som er dato for oprrettet / rettet

En tabel tripread som har:
trip som er turen som er set
user som er hvem som har set

Någet ala:

SELECT id FROM 'trips' WHERE changedate > '".(time()-7 dage
og 'tripread' (tur ikke set af user)
ORDER BY trip.date  ASC LIMIT 1

Er der en som kan hjælpe mig med det ?
Avatar billede showsource Seniormester
17. november 2007 - 15:19 #1
Det er vist noget i stil med

$sql = "SELECT `id` FROM `trip`
      WHERE
      `changedate` > DATE_SUB(CURDATE(), INTERVAL 7 DAY)
      AND
      `id` NOT IN (SELECT `trip` FROM `tripread` WHERE `user` = 2)
      ORDER BY `changedate` DESC LIMIT 1";

2 skal jo så byttes ud med hvordan du identificerer en bruger
Avatar billede steen-h Mester
17. november 2007 - 16:06 #2
Det virker næsten.
Der var lidt med sorteringen, den skulle være ASC og det med de 7 dage,
følgende virker.

SELECT id FROM `trips` WHERE `changedate` > 1194678556
      AND
      `id` NOT IN (SELECT `trip` FROM `tripread` WHERE `user` = 4)
      ORDER BY `date` ASC LIMIT 1

1194678556 er for 7 dage siden

Hvordan laves DATE_SUB(CURDATE(), INTERVAL 7 DAY)
om til for 7 dage siden ?
Avatar billede showsource Seniormester
17. november 2007 - 18:18 #3
Jeg gik ud fra du havde datoen i år-måned-dag format.

DATE_SUB() trækker fra datoen,
http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html
Avatar billede steen-h Mester
18. november 2007 - 07:48 #4
OK

Tak for hjælpen, læg et svar.
Avatar billede showsource Seniormester
18. november 2007 - 10:31 #5
ok
Nu viser du ikke hvordan du kommer frem til "7 dage siden" men strtotime() er oplagt
WHERE `changedate` > ". strtotime("-7 day") ."
Avatar billede steen-h Mester
18. november 2007 - 19:25 #6
Jeg bruger (time()-$config['newdate']) hvor $config['newdate']) er en variabel som jeg styrer i en config fil til at styre flere nyheds symboler.
Den er sat til 7 *24 * 60 * 60  som er 7 dage.

Jeg ville bare gerne se hvordan du ville have lavet det, hvis jeg kunne bruge det i en anden forbindelse.
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
Computerworld tilbyder specialiserede kurser i database-management

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