---
title: "Sortera nyheter efter månader"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/64687-sortera-nyheter-efter-månader"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "raki"
published: "2003-01-13T15:16:13.000Z"
updated: "2003-02-08T01:14:52.000Z"
replies: 16
views: 426
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/64687-sortera-nyheter-efter-månader"
---

# Sortera nyheter efter månader

## #1 — raki, 2003-01-13T15:16Z

Lite dålig rubrik, hoppas ni fattar vad jag menar nu  :) 

Jag skulle vilja sortera nyheter efter månader samt år.

Jag har är nybörjare på php så jag är tacksam för all hjälp.

\[edit\]
Man ska kunna välja från en lista vilken månad som ska visas.
Ett litet arkiv alltså.

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

## #2 — Qonos, 2003-01-14T12:06Z

hur långt har du kommit?

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

## #3 — raki, 2003-01-14T16:47Z

Jag har ett fungerande script nu som jag kan lägga till nyheter samt visa dem.

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

## #4 — raki, 2003-01-20T21:52Z

Ingen som vet hur man gör och kan hjälpa mig?  :(

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

## #5 — cyprys, 2003-01-20T21:53Z

SQL = "SELECT \* FROM tbl_nyheter WHERE month(col_datum) = " & StrMonth

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

## #6 — raki, 2003-01-20T22:05Z

Sorterar den inte bara efter månaderna där?

Jag vill ha ett arkiv där nyhetera sparas i kategorier (månader)

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

## #7 — raki, 2003-02-06T21:26Z

Frågar igen.

nån som kan hjälpa mig, eller vet nåt ställe där det finns kod på sånt här.

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

## #8 — raki, 2003-02-06T22:58Z

Jag vill alltså kunna visa nyhets poster som är skrivna en viss månad med hjälp av en drop down meny eller vanliga text länkar.

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

## #9 — Matte, 2003-02-07T06:30Z

Testa det här.

I ditt formulär:

```php
<form action="skript.php" method="get">
<select name="StrMonth">
<option value="2002-08">augusti 2002</option>
<option value="2002-09">september 2002</option>
</select>
```

 
SQL-frågan

```php
$sql = "SELECT * FROM tbl_nyheter WHERE DATE_FORMAT(col_datum,'%Y-%m')={$_GET['StrMonth']}";
```

Då ska datumkolumnen vara av formaten DATETIME eller TIMESTAMP.

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

## #10 — raki, 2003-02-07T09:23Z

Får det inte riktigt att fungera.
Kanske är för att inte datumkolumnen är som du säger.
Hur ändrar jag det?

Ser detta rätt ut annars:

```php
<table>
<?php 	
$datum = date("Y-m-d");
$sql = "SELECT * FROM news WHERE DATE_FORMAT   (col_datum,'%Y-%m')={$_GET['StrMonth']}";
$results = mysql_query($sql);
	
while ($rows = mysql_fetch_array($results)){
$id = $rows['id'];
$datum = $rows['datum'];
$name = $rows['name'];
$email = $rows['email'];
$rubrik = $rows['rubrik'];
$news = nl2br (strip_tags ($rows['news'], '<a><b><i><u>'));?>
	
<tr>
  <td><?=$datum?> | <?=$rubrik?></td>
</tr>
<tr>
  <td><?=$news?><br>By:<a href="mailto:<?=$email?>"><?=$name?></a></td>
</tr>
</table>
<?php } ?>
```

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

## #11 — Matte, 2003-02-07T09:37Z

Ser att vi får ändra lite i sql-frågan. Tror den bör vara så här istället:

```php
$sql = "SELECT * FROM news WHERE DATE_FORMAT(col_datum,'%Y-%m')='{$_GET['StrMonth']}'";
```

 
Hur har du sparat i col_datum? I vilket format?

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

## #12 — raki, 2003-02-07T19:15Z

Hur menar du med sparat col_datum?

Jag får detta felmeddelande:
*Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tomas/public_html/oldnews.php on line 35*

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

## #13 — Matte, 2003-02-07T23:03Z

Då får vi prova lite felsökning. Vad får du för utfall av detta:

```
$sql = "SELECT * FROM news WHERE DATE_FORMAT(col_datum,'%Y-%m')='{$_GET['StrMonth']}'";
$results = mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
```

 
Är fältet col_datum av formatet DATETIME eller TIMESTAMP så ska det funka. Om jag minns rätt även med VARCHAR om du lagt in det som '2003-02-07 00:00:00'.
Har du däremot VARCHAR och lagt in tiden typ '7/2-2003' så kan du få problem.

Hur ser ditt formulär ut ?

Hur ser koden ut där du sparar till din databas ?

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

## #14 — raki, 2003-02-07T23:48Z

Fick detta felmeddelande:
*SQL: SELECT \* FROM news WHERE DATE_FORMAT(col_datum,'%Y-%m')='2002-08'*  

Koden för att spara i databasen:

```php
<?php }elseif($action == "save"){
$datum = date("Y-m-d"); 
$sql = "INSERT INTO news (datum, name, email, rubrik, news) VALUES ('$datum', '$name', '$email', '$rubrik', '$news')";
$results = mysql_query($sql);?>
```

 

Datum i databasen ser ut såhär:
datum timestamp(14) NOT NULL,

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

## #15 — Johnny Rönnberg, 2003-02-07T23:56Z

:bire  :bire

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

## #16 — Matte, 2003-02-08T00:04Z

> **raki skrev:**
>
> Fick detta felmeddelande:
> *SQL: SELECT \* FROM news WHERE DATE_FORMAT(col_datum,'%Y-%m')='2002-08'*

Du måste ha fått ytterligare en rad efter denna?

Har du någon kolumn ytterligare som heter col_datum?
Annars så är det kolumnen datum du ska använda i din sql_fråga:

```
$sql = "SELECT * FROM news WHERE DATE_FORMAT(datum,'%Y-%m')='{$_GET['StrMonth']}'";
```

 
Ett TIMESTAMP behöver du inte lägga in värde på i tabellen, detta sker automatiskt. Skulle du ändå göra det så gör det med med now(), eller om du vill använda date utanför sql-satsen, använd samma format som TIMESTAMP:

```
$datum = date("YmdHis");
```

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

## #17 — raki, 2003-02-08T01:14Z

Tack Matte!

nu funkar allt som det ska

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

---

Tråden på webben: https://www.webforum.nu/amne/php/64687-sortera-nyheter-efter-månader
