---
title: "sortera efter senaste datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/44057-sortera-efter-senaste-datum"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "netfeed"
published: "2002-05-18T21:56:34.000Z"
updated: "2002-05-27T06:38:18.000Z"
replies: 18
views: 462
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/44057-sortera-efter-senaste-datum"
---

# sortera efter senaste datum

## #1 — netfeed, 2002-05-18T21:56Z

jag har följande kod för at skriva ut vilka topics det finns i ett forum.
ni är det så att jag vill ha dem sorterade efter datum men får inte det att funka... datumen läggs till konstigt ch det puckar med hur det skrivs ut...

behövs det mer fakta så kan jag posta det

```php
        <table border=0 width=100%>
          <tbody>
               <tr>
                      <td width=60% class=txtNormalForumHead>
                          <b>Topic</b>
                      </td>
                      <td width=20% class=txtNormalForumHead>
                          <b>Created By</b>
                      </td>
                      <td width=8% class=txtNormalForumHead>
                          <b>Posts</b>
                      </td>
                      <td class=txtNormalForumHead>
                          <b>Last Post</b>
                      </td>
               </tr>
               <?php
               $resultTopic = pg_Exec($conn, "SELECT * FROM myriadForumTopic ORDER BY id DESC;");
               $rows        = pg_NumRows($resultTopic);

               for ( $i=0 ; $i<$rows ; $i++){
                     $id              = pg_Result($resultTopic, $i, id);
                     $resultNick      = pg_Exec($conn, "SELECT * FROM myriadForumPost WHERE myriadForumTopic_id=$id ORDER BY datum;");
                     $resultQuantity  = pg_Exec($conn, "SELECT * FROM myriadForumPost WHERE myriadForumTopic_id=$id ORDER BY datum;");
                     $rowsQuantity    = pg_NumRows($resultQuantity);
                     $topicName       = pg_Result($resultTopic, $i, topic);
                     $userNick        = pg_Result($resultNick,  0,  nick);
                     $resultDatum     = pg_Exec($conn, "SELECT datum FROM myriadForumPost ORDER BY id DESC");
                     $datum           = substr(pg_Result($resultDatum, $i, datum),5,11);
                     ?>
                     <tr>
                            <td class=txtNormalForumPost>
                                <a class=leftLink href="<?php echo "forum.php?event=show&topic=$id"; ?>"><?php echo $topicName; ?></a>
                            </td>
                            <td class=txtNormalForumPost>
                                <a class=leftLink href="<?php echo "user.php?nick=$userNick"; ?>"><?php echo $userNick; ?></a>
                            </td>
                            <td class=txtNormalForumPost>
                                <?php echo $rowsQuantity; ?>
                            </td>
                            <td class=txtNormalForumPost>
                                <?php echo $datum; ?>
                            </td>
                     </tr>
                     <?php
               }

              echo("
              <tr>
                      <td colspan=3 class=txtNormal>
                          | <a href=\"forum.php?event=addTopic\">New Topic</a> |
                      </td>
              </tr>
          </tbody>
        </table>

            ")
```

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

## #2 — LAMP, 2002-05-18T21:59Z

Om jag fattade dig rätt?

```
$resultTopic = pg_exec($conn, "SELECT * FROM myriadForumTopic ORDER BY [b]datumkolumn[/b] DESC;");
```

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

## #3 — LAMP, 2002-05-18T22:01Z

eller du ville kanske ha den senaste besvarade topicen överst?

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

## #4 — netfeed, 2002-05-18T22:04Z

precis den senaste besvarade forums posten skall vara först

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

## #5 — netfeed, 2002-05-18T22:05Z

problemet är att datumet ligger i myriadForumPost och inte i myriadForumTopic...

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

## #6 — LAMP, 2002-05-19T09:07Z

Gör en kolumn till i tabellen av typen datetime som du uppdaterar med now() när någon svarar på en topic, sedan sorterar du efter den kolumnen.

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

## #7 — Fuel, 2002-05-19T15:45Z

\--- Sorry .. fel ---

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

## #8 — netfeed, 2002-05-19T18:05Z

> *Ursprungligen av LAMP*  **Gör en kolumn till i tabellen av typen datetime som du uppdaterar med now() när någon svarar på en topic, sedan sorterar du efter den kolumnen.**

hur menar du?
förstår inte rikitgt...

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

## #9 — netfeed, 2002-05-19T20:49Z

uppdatering:

nu ser koden ut så här och jag har fått ut senaste tillfälle nån har svarat men jag kan inte få den att sortera... det är riktigt störande

```php
        <?       $resultTopic = pg_Exec($conn, "SELECT id, topic FROM myriadForumTopic ORDER BY id DESC;");
               $rows        = pg_NumRows($resultTopic);

               for ( $i=0; $i<$rows; $i++){
                     $id              = pg_Result($resultTopic, $i, id);
                     $resultNick      = pg_Exec($conn, "SELECT nick FROM myriadForumPost WHERE myriadForumTopic_id=$id ORDER BY datum;");
                     $rowsQuantity    = pg_NumRows($resultNick);
                     $topicName       = pg_Result($resultTopic, $i, topic);
                     $userNick        = pg_Result($resultNick,  0,  nick);
                     $resultDatum     = pg_Exec($conn, "SELECT datum from myriadforumpost where id=(select max(id) from myriadforumpost WHERE myriadforumtopic_id=$id);");
                     $datum           = substr(pg_Result($resultDatum, 0, datum),5,11);
                     ?>
                     <tr>
                            <td class=txtNormalForumPost>
                                <a class=leftLink href="<?php echo "forum.php?event=show&topic=$id"; ?>"><?php echo $topicName;  ?></a>
                            </td>
                            <td class=txtNormalForumPost>
                                <a class=leftLink href="<?php echo "user.php?nick=$userNick"; ?>"><?php echo $userNick; ?></a>
                            </td>

                            <td class=txtNormalForumPost>
                                <?php echo $rowsQuantity; ?>
                            </td>
                            <td class=txtNormalForumPost>
                                <?php echo $datum; ?>
                            </td>
                     </tr>
```

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

## #10 — LAMP, 2002-05-20T00:10Z

Oki, hur ser din tabellstruktur ut i databasen?

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

## #11 — netfeed, 2002-05-20T18:02Z

myriadforumtopic:
 Attribute \|    Type     \|                         Modifier                          
\-----------+-------------+-----------------------------------------------------------
 category  \| varchar(40) \| 
 topic     \| varchar(40) \| 
 id        \| integer     \| not null default nextval('myriadforumtopic_id_seq'::text)
Index: myriadforumtopic_pkey

myriad forumpost:
      Attribute      \|    Type     \|                         Modifier                         
\---------------------+-------------+----------------------------------------------------------
 nick                \| varchar(16) \| 
 message             \| text        \| 
 myriadforumtopic_id \| integer     \| 
 datum               \| timestamp   \| default 'now'
 id                  \| integer     \| not null default nextval('myriadforumpost_id_seq'::text)
Index: myriadforumpost_pkey

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

## #12 — LAMP, 2002-05-20T20:20Z

myriadforumtopic: 
Attribute \| Type \| Modifier 
\-----------+-------------+----------------------------------------------------------- 
category \| varchar(40) \| 
topic \| varchar(40) \| 
id \| integer \| not null default nextval('myriadforumtopic_id_seq'::text) 
Index: myriadforumtopic_pkey 
**dteDate \| dateTime**

\----------------------------------------------

```php
// uppdatera fältet dteDate med now() där någon gjort ett inlägg  
// eller ett svar under en viss topic. 

if ($id) {
$strSQL ="UPDATE myriadforumtopic SET dteDate = Now() WHERE id = $id";
$result = mysql_query($strSQL);
{
```

 

```php
SELECT * FROM myriadforumtopic ORDER BY dteDate DESC
```

 

Hoppas du förstår hur jag menar, fråga annars igen :)

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

## #13 — netfeed, 2002-05-21T18:17Z

tyvärr jag är lessen
fattar nada

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

## #14 — LAMP, 2002-05-22T13:05Z

Okey, vi tar det grundligt en sista gång. ;)

Om jag förstår frågan rätt har du en tabell med topics (ämnesrubriker) som du vill lista efter senast gjorda topic eller om svar finns, senast besvarade topic överst. (precis som här på wF)

Skapa en ny kolumn med lämpligt namn (förslagsvis dteLastUpdate) i formatet datetime (not null). När någon skapar en ny ämnesrubrik skickar du med värdet Now() till kolumnen dteLastUpdate i din INSERT. Nu har du en etikett som visar när det senast var aktivitet i topicen. Om det nu är så att någon svarar på topicen uppdaterar du dteLastUpdate med värdet Now(). Alltså har du ändrat senaste aktivitet till exakt datum och tid i aktuell topic.

Sedan vill du lista alla topics med den senast inlagda eller besvarade topicen överst. Då hämtar du som vanligt med SELECT och sorterar (ORDER BY) efter kolumnen dteLastUpdate och då med senast överst (DESC).

Lycka till!

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

## #15 — netfeed, 2002-05-23T18:42Z

då fattar jag
men nu är det så här att jag inte kan lägga till en ny kolummn :(
hur gör man i sådan fall?

lägger jag till en till så blir det redundans

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

## #16 — LAMP, 2002-05-23T18:52Z

Om jag fattat din dbstruktur rätt så har du nog inget val. I access och sql-server har jag för mig man kan plocka ut det med en subselect eller något i den stilen. Men tyvärr saknar mysql sådana funktioner undantaget de absolut senaste versionerna.

Det är kanske någon annan som har en annan lösning?

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

## #17 — netfeed, 2002-05-25T17:09Z

jag har kommit på en lösning men får den inte att funka 
man kan skapa en virtuel tabell mha "as" typ:

```php
 $selectTest  = pg_Exec($conn, "SELECT id as id, topic as topic, (SELECT datum from myriadforumpost where id=(select max(id) from myriadforumpost WHERE myriadforumtopic_id=$id)) as datum FROM myriadForumTopic ORDER BY datum DESC;");
```

men det är så att jag inte kommer åt $id därför att  den ligger utanför i for slingan

alltså den här koden skall ligga där den första $resultTopic ligger...

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

## #18 — LAMP, 2002-05-25T17:17Z

Om du har mysql som dbms fungerar inte subquerys har jag för mig.

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

## #19 — netfeed, 2002-05-27T06:38Z

men det har jag inte
använder potsgresql

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

---

Tråden på webben: https://www.webforum.nu/amne/php/44057-sortera-efter-senaste-datum
