Avatar billede kimols1 Nybegynder
12. oktober 2006 - 08:56 Der er 14 kommentarer

Blog Arkiv.

Er ved at oprette en blog. 5 senester poster skal vises under "arkiv" opdelt under måneder. hvordan gør jeg det?
Avatar billede kimols1 Nybegynder
12. oktober 2006 - 08:57 #1
sry..skrev forkert:
Er ved at oprette en blog. hvor de 5 seneste poster bliver vist på forsiden (har jeg lavet)

resten skal jeg ha vist under "arkiv" opdelt i måneder. hvordan gør jeg det?
Avatar billede coderdk Praktikant
12. oktober 2006 - 09:34 #2
Hvis din "tid" i databasen er et unix timestamp (int):

setlocale( LC_TIME, "da", "da_DK", "da_DK.ISO9950-1", "dan", "danish" );
$sql = "SELECT id, tid, overskrift FROM blogtabel ORDER BY tid DESC LIMIT 5,18446744073709551615";
$qh = mysql_query( $sql ) or die( mysql_error() );
$oldYm = 0;
while ( $row = mysql_fetch_assoc( $qh ) )
{
  if ( $oldYm != date( "Ym", $row['tid'] ) )
  {
      $oldYm = date( "Ym", $row['tid'] );
      echo "<b>" . ucfirst( strftime( "%B, %Y", $row['tid'] ) ) . "</b><br>\n";
  }
  echo "<a href=\"laes.php?id=$row[id]\">$row[overskrift]</a><br>\n";
}
Avatar billede kimols1 Nybegynder
12. oktober 2006 - 09:57 #3
dato sættes ind med date(); og feltet i dben har jeg lavet som en varchar. og er desværre heller ikk helt med på hva der foregår i dit script..
Avatar billede coderdk Praktikant
12. oktober 2006 - 10:05 #4
Hvordan ser data i datofeltet ud? Du bør lave det om til en INT og bruge time().
Mit script tager alle blog-posts, undtagen de 5 første, og skriver dem ud med måned og år som overskrift, i.e.

Oktober, 2006
En overskrift her
Anden overskrift
Tredje overskrift
September, 2006
Noget fra september
August, 2006
Overskrift her

osv
Avatar billede kimols1 Nybegynder
12. oktober 2006 - 10:35 #5
min data i datafeltet : 12/10-2006 osv.
det script du har lavet er præcis hva jeg gerne vil ha. problemet er bare at mange af de funktioner du har bruget, kender jeg intet til. og hader at sidde at skrive noget ind, hvor jeg ikk aner hvad der foregår. har du evt en anden måde at gøre det på?
Avatar billede kimols1 Nybegynder
12. oktober 2006 - 11:10 #6
kunne man oprette 3 felter i dben,altså dag,måned,år? og så under arkivet udskrive alle poster where måned er == 10?
Avatar billede coderdk Praktikant
12. oktober 2006 - 12:08 #7
Det er en kluntet måde at gøre det på, gem hellere en time() altså en int så virker sortering også ;P Meget nemmere
Avatar billede kimols1 Nybegynder
12. oktober 2006 - 12:25 #8
okay. prøver engang. er bare ikk rigtigt inde i hvad time() functionen gør..
Avatar billede coderdk Praktikant
12. oktober 2006 - 12:32 #9
time() giver et unix timestamp, som er antal sekunder siden 1/1-1970 0:00:00
Det er den du bruger sammen med date()-funktionen bl.a.

http://dk.php.net/time
http://dk.php.net/date
http://dk.php.net/strftime
http://dk.php.net/strtotime

osv :)
Avatar billede aeroone Nybegynder
12. oktober 2006 - 18:59 #10
Indsætter du automatisk en dato? hvis du gør, og datoen er dags dato, skal du jo bare vælge de sidste 5 poster i db'en
Avatar billede kimols1 Nybegynder
12. oktober 2006 - 20:15 #11
ja..indsætter automatisk dato. altså jeg ville gerne ha at posterne automatisk blev sorteret ind under deres tilhørende måned i arkivet på min side..
Avatar billede aeroone Nybegynder
12. oktober 2006 - 21:19 #12
Hvorledes indsætter du denne dato, hvis du skriver 'echo date()' giver det intet, date funktionen, skal bruge et timestamp, for at lave en dato.
Hvordan ser indholdet af dit db felt (dato) ud? så må vi jo arbejde ud fra det
Avatar billede kimols1 Nybegynder
12. oktober 2006 - 21:27 #13
altså når der bliver tilføjet en post ryger den i dben sammen variablen $dato = dato('d/m-Y');

i datofeltet f.eks. 12/10-2006.

fatter bare hat af alle de der tidsformater og funktioner..
Avatar billede aeroone Nybegynder
13. oktober 2006 - 06:55 #14
list($dag, $maaned, $aar) = split('[/.-]', $dato);
$tid = mktime('00', '00', '00', $maaned, $dag, $aar);

på denne måde får du lavet dit danske tidsformat om til en time, nu kan du formatere strengen, med date() funktionen som du lyster, eller du kan bruge de 3 variabler du får ud af list funktionen.
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