Avatar billede prop46 Nybegynder
01. november 2006 - 20:33 Der er 18 kommentarer og
1 løsning

Hent uge i DB

Jeg har kigget rundt her på Eksperten og i PHP-maualen, men jeg kan stadig ikke find ordentligt ud af det... Håber på lidt hjælp.

Fra en database skal jeg skal hente de dage af den aktuelle uge som har en aktivitet.
Jeg skal altså:
- Finde den aktuelle uge.
- Finde mandagens dato.
- Leder i databasen efter aktiviteter for mandagen + 6 datoer.
(Noget i retningen á-la:
$hent_forside = "SELECT aktivitet FROM aktiviteter WHERE dato > UNIX_TIMESTAMP() AND sted = 'kobenhavn' ORDER BY dato LIMIT 0, 7";)

???
Avatar billede coderdk Praktikant
01. november 2006 - 21:17 #1
Noget i stil med:

    $today = time();
    $weeknumber = strftime( "%V", $today );
    $weekday = strftime( "%u", $today );
    $beginweek = strtotime( "-" . $weekday . " DAY", $today );
    $endweek = strtotime( ( "+" . 7 - $weekday . " DAY", $today );
    $sql = "
        SELECT
            aktivitet
        FROM
            aktiviteter
        WHERE
            dato BETWEEN $beginweek AND $endweek
            AND sted = 'kobenhavn'
        ORDER BY
            dato
        ";
Avatar billede coderdk Praktikant
01. november 2006 - 21:17 #2
($weeknumber bliver så ikke brugt her)
Avatar billede coderdk Praktikant
01. november 2006 - 21:18 #3
Der var en ( for meget:

    $today = time();
    $weeknumber = strftime( "%V", $today );
    $weekday = strftime( "%u", $today );
    $beginweek = strtotime( "-" . $weekday . " DAY", $today );
    $endweek = strtotime( "+" . 7 - $weekday . " DAY", $today );
    echo $sql = "
        SELECT
            aktivitet
        FROM
            aktiviteter
        WHERE
            dato BETWEEN $beginweek AND $endweek
        ORDER BY
            dato
        ";
Avatar billede Slettet bruger
02. november 2006 - 07:28 #4
Ekstra spm, fra mig -> hvorfor % foran i dine strftime?
Avatar billede coderdk Praktikant
02. november 2006 - 11:04 #5
strftime erstatter kun tingene hvis der er % i :) Det betyder at du kan skrive:

echo strftime( "Det er i dag %A den %d. %B %Y" );

Med % ved den hvad den skal erstatte ;)
Avatar billede Slettet bruger
02. november 2006 - 12:39 #6
okay for jeg bleger bare at bruge
date();
Avatar billede prop46 Nybegynder
27. november 2006 - 15:22 #7
Hej for pokker! Sorry at jeg ikke har fået reageret før.. computervrøvl og bla bla. Håber stadig du lytter med :0)

Jeg har prøvet, men får intet output... Se her:

<?php
$today = time();
$weeknumber = strftime( "%V", $today );
$weekday = strftime( "%u", $today );
$beginweek = strtotime( "-" . $weekday . " DAY", $today );
$endweek = strtotime( "+" . 7 - $weekday . " DAY", $today );
$maned = strftime( "%B", $today );
$ar = strftime( "%Y", $today );
$tabel = $maned.''.$ar;

$hent_kbhuge = "SELECT * FROM $tabel WHERE dato BETWEEN $beginweek AND $endweek ORDER BY dato ASC";

aabn_forbindelse_og_vaelgdb();
$resultat_hent_kbhuge = mysql_query($hent_kbhuge);
luk_forbindelse();
?>

og...

<?php
while($resultat_kbhuge = mysql_fetch_array($resultat_hent_kbhuge)) {
  $tekst =  stripslashes($resultat_kbhuge["tekst"]);
  $dato =  stripslashes($resultat_kbhuge["dato"]);
  $dag = date('w', $dato);
  $dag_arr = array("Søn", "Man", "Tirs", "Ons", "Tors", "Fre", "Lør");
  $dag = $dag_arr[$dag];
?>
<tr>
  <td><?php echo $dag; ?>.</td>
  <td>&nbsp;-&nbsp;<?php echo $tekst; ?>.</td>
</tr>
<?php
}
?>

Hvad mon los problemos er?
Avatar billede coderdk Praktikant
27. november 2006 - 15:32 #8
Prøv at skrive $hent_kbhuge ud så vi kan se hvad den indeholder ;)
Avatar billede prop46 Nybegynder
27. november 2006 - 15:41 #9
Mener du sådan her?
   
$resultat= mysql_fetch_array($resultat_hent_kbhuge);
echo $resultat;

I så fald --> ingenting
Avatar billede coderdk Praktikant
27. november 2006 - 15:47 #10
Nej

echo $hent_kbhuge;
Avatar billede prop46 Nybegynder
27. november 2006 - 15:49 #11
Hm.. der mangler en startdato...

SELECT * FROM november2006 WHERE dato BETWEEN AND 1165243797 ORDER BY dato ASC
Avatar billede coderdk Praktikant
27. november 2006 - 16:03 #12
Badabing ;) Det hjælper at debugge! ;)
Avatar billede prop46 Nybegynder
27. november 2006 - 16:06 #13
Men... hvorfor mangler den startdato dog.....? --> $beginweek
Avatar billede coderdk Praktikant
27. november 2006 - 16:12 #14
Mere debug, se hvad $weekday indeholder osv ;)
Avatar billede prop46 Nybegynder
27. november 2006 - 16:29 #15
Hverken $weeknumber, $weekday el. $beginweek indeholder noget....
Avatar billede prop46 Nybegynder
27. november 2006 - 16:34 #16
Aha.. jeg skiftede

$weeknumber = strftime( "%V", $today );
$weekday = strftime( "%u", $today );

ud med

$weeknumber = strftime( "%W", $today );
$weekday = strftime( "%w", $today );

og nu virker det... Hvad står V og u får?
Avatar billede coderdk Praktikant
27. november 2006 - 18:57 #17
Bruger du windows?

Standard UNIX:

http://dk.php.net/strftime

Windows:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_strftime.2c_.wcsftime.asp

%V er ISO-8601 ugenummer som vi bruger i Danmark.
%u er ugedag hvor 1 er mandag og 7 er søndag.
Så du skal nok tilrette ;)
Avatar billede prop46 Nybegynder
27. november 2006 - 19:34 #18
Jeps.. lægger du et svar? Tak for hjælpen :0)
Avatar billede coderdk Praktikant
27. november 2006 - 20:29 #19
Så lidt :)
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