Avatar billede konder Nybegynder
28. juli 2008 - 07:14 Der er 13 kommentarer og
1 løsning

søge på bestemt dato og få resultatet indenfor en uge.

Jeg har en søgning på bestemt dato:
$foresp = mysql_query("SELECT * FROM rapport WHERE dato LIKE '%$sog%' ORDER BY dato desc")  or die(mysql_error());
men ville gerne have resultater f.eks. fra 3 dage inden og 3 dage efter $sog.
$sog formatet er 0000-00-00
Avatar billede w13 Novice
28. juli 2008 - 07:54 #1
Så kan du vel bruge BETWEEN.

http://www.techonthenet.com/sql/between.php
Avatar billede konder Nybegynder
28. juli 2008 - 08:43 #2
Undskyld men jeg må gå lidt fra og til... men hvordan trækker jeg 3 dage fra datoen $sog og lægger 3 dage til?
Avatar billede w13 Novice
28. juli 2008 - 09:36 #3
Prøv at kigge på DateAdd i MySQL: http://www.google.com/search?q=mysql+dateadd
Avatar billede konder Nybegynder
28. juli 2008 - 10:03 #4
Desværre får jeg blot fejlmeldingen
FUNCTION x.DATEADD does not exist
Avatar billede jarner Nybegynder
28. juli 2008 - 10:37 #5
Avatar billede konder Nybegynder
28. juli 2008 - 10:57 #6
Nu får jeg da ingen fejlmelding men heller intet resultat. jeg har:
$foresp = mysql_query("SELECT * FROM rapport WHERE dato BETWEEN '%$sog%' AND ADDDATE($sog, 3)
ORDER BY dato desc")  or die(mysql_error());
Avatar billede w13 Novice
28. juli 2008 - 11:04 #7
Drop procenttegnene.

Du bruger jo ikke LIKE til datoerne, så derfor skal det være:

$foresp = mysql_query("SELECT * FROM rapport WHERE dato BETWEEN '$sog' AND ADDDATE($sog, 3) ORDER BY dato desc") or die(mysql_error());
Avatar billede konder Nybegynder
28. juli 2008 - 11:12 #8
Når jeg forsøger at definere først med:
$start = $_POST['start'];
$tredageefter = ADDDATE($start, 3);
og så siger WHERE dato BETWEEN '%$start%' AND $tredageefter siger den: Call to undefined function ADDDATE()
Avatar billede konder Nybegynder
28. juli 2008 - 11:23 #9
("SELECT * FROM rapport WHERE dato BETWEEN '$sog' AND ADDDATE($sog, 3) ORDER BY dato desc") or die(mysql_error()); giver ingen resultat.
Avatar billede w13 Novice
28. juli 2008 - 11:27 #10
Ang. 11:12:52: Du skal ikke have %-tegnene med, når du ikke bruger LIKE. Derudover kan funktionen ADDDATE ikke bruges uden for MySQL-sætningen.

$start = $_POST['start'];
WHERE dato BETWEEN $start AND AddDate($start,3)
Avatar billede konder Nybegynder
28. juli 2008 - 13:17 #11
Det er helt dødt. Jeg må desværre løbe nu og vender først tilbage sent i aften el. imorgen. Det er virkelig somom funktionen AddDate ikke eksistere hos mig.
Avatar billede w13 Novice
28. juli 2008 - 13:48 #12
Du kunne jo prøve at se, om det virker, hvis du manuelt skriver datoen for idag+3 ind i stedet for AddDate.
Avatar billede jarner Nybegynder
28. juli 2008 - 22:53 #13
Et skud i tågen - det kan være at det er en ældre version af MySQL du har installeret.
Avatar billede w13 Novice
19. august 2008 - 10:45 #14
Kommet videre?
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