---
title: "Automatisk meny"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/170371-automatisk-meny"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "tanten"
published: "2008-03-31T21:33:05.000Z"
updated: "2008-07-19T07:16:33.000Z"
replies: 5
views: 809
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/170371-automatisk-meny"
---

# Automatisk meny

## #1 — tanten, 2008-03-31T21:33Z

Försöker komma på hur man kan få datumen i en tabell att med php skapa nya länkar i menyn så fort den fått innehåll. Så som många bloggar fungerar.
Så härskulle jag vilja få till det: Arkiv
\<dl\>
\<dt\>2008\</dt\>
\<dd\>\<a href="/2008/feb.php" title="feb 2008"\>Februari\</a\>\</dd\>
osv
\<dd\>\<a href...\>April\</a\>\</dd\>   //efter i morgon när den första nyheten kommit in i databasen osv...
\</dl\>  
Är det möjligt med bara php?

Blir jätteglad för alla tips...

Permalänk: https://www.webforum.nu/p/170371

## #2 — itpastorn, 2008-04-05T21:38Z

Om man tänker sig data lagrad i MySQL med datetime, så kan man i sin SQL-fråga formatera per år och månad och sedan gruppera svaren så att det blir ett svar per månad. Därefter blir det en loop i php för att visa resultatet.

<http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format>

```
SELECT DATE_FORMAT(blogtime,'%Y') AS year, DATE_FORMAT(blogtime,'%M') as month 
GROUP BY year, month 
ORDER by blogtime DESC
```

Moderna versioner av MySQL (5.0.25+) stödjer också locale för exempelvis namn på dagar och månader. Då kan man använda svaret från frågan ovan utan att översätta till svenska. <http://dev.mysql.com/doc/refman/5.0/en/locale-support.html>

Permalänk: https://www.webforum.nu/p/2095920

## #3 — tanten, 2008-04-06T10:43Z

Tack för svar itpastorn, men jag kanske uttryckte mig dåligt.
Som jag har det nu så får jag till länken på det sätt du beskriver, \<dd\>\<a href="../2008/feb.php" title="feb 2008"\>Februari\</a\>\</dd\>men jag får samtidigt skapa en ny fil för varje månad... typ feb.php

```php
$stmt = $db->prepare('SELECT rubrik, message
FROM news
WHERE datum > \'2008-02-01\'
AND datum < \'2008-03-01\'
ORDER BY id DESC');
```

Och jag tror inte att det går till så på bloggarnas Archive-länkar.
t.ex på din vän blog.c0la's Archive så skapas länkarna automatiskt på något sätt.
Kan det vara så att man måste använda atom+xml? Känner att jag har aldeles för lite kunskap för att ställa frågan rätt, men hoppas ni förstår vad jag menar.  :r

Permalänk: https://www.webforum.nu/p/2095960

## #4 — aasah, 2008-04-06T13:58Z

Vad är det egentligen du länkar **till**? Poster i en databas? För i så fall ska det inte till några filer. Säg att du har en tabell:

Gästbok
nr   Inlägg Datum
1    Hej     080105
2    Tja     080212
3    kul      080324
4    puh    080324

Då kan du skapa en sida i PHP som visar **ett** visst inlägg baserat på id:t, tex 

```php
$sql = "SELECT Inlägg FROM Gästbok WHERE  id = ".$_GET['id'];
$res = mysql_query($sql) or die();
$row = mysql_fetch_array($res);
echo $row['Inlägg'];
```

 Då kommer showGuestbook.php?id=1 att skriva ut "Hej", medan showGuestbook.php?id=3 visar "kul".

Då kan du länka till den infon så här:

```php
$sql = "SELECT id, DATE_FORMAT(Datum,'%Y') AS år, DATE_FORMAT(Datum,'%M') as mån  FROM Gästbok ORDER BY Datum DESC";
$res = mysql_query($sql) or die();
$old = '';
while ($row = mysql_fetch_array($res)) {
   $curr = $row['mån'].' '.$row['år'];
   if ($curr != $old) {
      echo '<h1>'.$curr.'</h1>';
      $old = $curr;
   }
   $url = "showGuestbook.php?id=".$row['id'];
   echo '<a href="'.$url.'">...</a>';
}
```

Permalänk: https://www.webforum.nu/p/2095990

## #5 — Fredde Mannen, 2008-04-06T14:14Z

Och vill man få det att se ut som liknande: <http://www.domain.se/2008/Februari.php>

Så får man ta hjälp av htaccess och använda sig av rewrite-rules ..

men som egentligen kanske ser ut så här: <http://www.domain.se/page.php?y=2008&m=2>

typ...

Permalänk: https://www.webforum.nu/p/2095992

## #6 — tanten, 2008-07-19T07:16Z

Annat kom emellan så jag har inte hunnit med att ta tag i detta igen förrän nu, så jag gör ett nytt försök och livar upp min gamla tråd igen...
Men nej det är inte ett inlägg som det ska länkas till.
Jag länkar till en hel månads dagboksanteckningar. Som en vanlig blogg.
Och jag har pillat lite och försökt med lite olika varianter, men...
Som det ser ut just nu så har jag en index fil med en header som pekar in till /2008/juli.php och det fungerar så länge det är juli, men när det blir augusti och det skrivs en ny dagboksanteckning så skulle jag vilja komma på ett sätt att få indexfilen att peka till augusti i stället.
Inte så att det byts vid månadsskiftet. Då finns det risk att det blir en tom sida som visas flera dagar eller error, gissar jag. Sedan har jag 12 filer som ser ut som den jag visade förut. En för varje månad. 
Av vad jag förstått så har det tillkommit nya classer som kan hantera datum i.o.m. php5 men dokumentationen är väl si så där.
Sidan är fem år gammal och har sin historia... och alla gamla mappar som ligger i roten får vara kvar som de är med sin gamla kodning. därav headern till mappen 2008.
Någon som kan ge tips på hur jag ska lösa detta för framtiden?   :q

Permalänk: https://www.webforum.nu/p/2126364

---

Tråden på webben: https://www.webforum.nu/amne/php/170371-automatisk-meny
