---
title: "Paging (Tidigare hoppa över)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/104960-paging-tidigare-hoppa-över"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Leijonkungen"
published: "2004-06-01T13:38:23.000Z"
updated: "2004-06-04T12:47:51.000Z"
replies: 14
views: 451
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/databaser-sql/104960-paging-tidigare-hoppa-över"
---

# Paging (Tidigare hoppa över)

## #1 — Leijonkungen, 2004-06-01T13:38Z

Detta fungerar inte för mig av någon anledning. Jag får ett meddelande om att jag har ett fel i SQL-frågan. Tänkte använda detta i en liten nyhetsfunktion där de sex senaste nyheterna listas först följt av en lista på de 50 senaste nyheterna. Några förslag?

Tabellen med nyheterna heter "nyheter" och id:et kallas "nyheterID".

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

## #2 — LarsG, 2004-06-01T14:19Z

Vilket fel får du?

Generellt: 

Nytt problem --\> Ny tråd.

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

## #3 — Leijonkungen, 2004-06-04T08:29Z

Förut var det något fel men av någon anledning fungerar nu SQL-satsen i den bemärkelse att resultat skrivs ut. Dock inte alls som jag vill ha det. Nu skriver den ut alla nyheter trots att SQL-satsen tycks säga att den inte gör det.

Så här ser den ut:

SELECT \*
FROM nyheter
WHERE nyheterID NOT IN ('SELECT TOP 10 nyheterID FROM nyheter
ORDER BY nyheterID DESC') ORDER BY nyheterID DESC

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

## #4 — Engine^, 2004-06-04T09:19Z

Ta bort apostroferna i din subselect.

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

## #5 — Leijonkungen, 2004-06-04T11:57Z

> **Engine^ skrev:**
>
> Ta bort apostroferna i din subselect.

Hmm, det är verkligen konstigt.
Om jag tar bort apostroferna blir det samma SQL-fel som tidigare:

*You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT TOP 10 nyheterID FROM nyheter ORDER BY nyheterID DESC) O*

Och då kör jag alltså den här koden:

SELECT \* FROM nyheter WHERE nyheterID NOT IN (SELECT TOP 10 nyheterID FROM nyheter ORDER BY nyheterID DESC) ORDER BY nyheterID DESC

Kör jag denna kod skrivs alla nyheter ut:

SELECT \* FROM nyheter WHERE nyheterID NOT IN ('SELECT TOP 10 nyheterID FROM nyheter ORDER BY nyheterID DESC') ORDER BY nyheterID DESC

Konstigt är ordet.

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

## #6 — @nders, 2004-06-04T12:00Z

TOP stöds inte i MySQL. Du får ge dig på LIMIT.

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

## #7 — Peeer, 2004-06-04T12:03Z

MySQL stödjer inte subselects (förrens i version 4.1?) ta dig en titt på limit istället.

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

## #8 — Leijonkungen, 2004-06-04T12:07Z

> **Peeer skrev:**
>
> MySQL stödjer inte subselects (förrens i version 4.1?) ta dig en titt på limit istället.

Novis som jag är: hur skulle en sådan se ut som gör samma sak?

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

## #9 — Peeer, 2004-06-04T12:12Z

```
SELECT * FROM nyheter ORDER BY nyheterID DESC limit 10, 99999999
```

99999999 är bara ett stort tal för att få med alla poster efter rad 10. Vet inte om man kan skriva det på något "snyggare" sätt.

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

## #10 — Leijonkungen, 2004-06-04T12:19Z

Nu får jag detta fel i stället:

```
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 50' at line 1
```

 

 :q

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

## #11 — Peeer, 2004-06-04T12:21Z

Kan du visa din kod?

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

## #12 — Leijonkungen, 2004-06-04T12:33Z

> **Peeer skrev:**
>
> Kan du visa din kod?

Sure! I det här fallet är den genererad i DW MX2004, och ja, jag vet att det är som att svära i kyrkan att säga att man använder det här, men ändå: :D

```
$maxRows_rsNyheterResten = 50;
$pageNum_rsNyheterResten = 0;
if (isset($_GET['pageNum_rsNyheterResten'])) {
  $pageNum_rsNyheterResten = $_GET['pageNum_rsNyheterResten'];
}
$startRow_rsNyheterResten = $pageNum_rsNyheterResten * $maxRows_rsNyheterResten;

mysql_select_db($database_Databasen, $Databasen);
$query_rsNyheterResten = "SELECT * FROM nyheter ORDER BY nyheterID DESC limit 10, 99999999";
$query_limit_rsNyheterResten = sprintf("%s LIMIT %d, %d", $query_rsNyheterResten, $startRow_rsNyheterResten, $maxRows_rsNyheterResten);
$rsNyheterResten = mysql_query($query_limit_rsNyheterResten, $Databasen) or die(mysql_error());
$row_rsNyheterResten = mysql_fetch_assoc($rsNyheterResten);

if (isset($_GET['totalRows_rsNyheterResten'])) {
  $totalRows_rsNyheterResten = $_GET['totalRows_rsNyheterResten'];
} else {
  $all_rsNyheterResten = mysql_query($query_rsNyheterResten);
  $totalRows_rsNyheterResten = mysql_num_rows($all_rsNyheterResten);
}
$totalPages_rsNyheterResten = ceil($totalRows_rsNyheterResten/$maxRows_rsNyheterResten)-1;
```

 

Lycka till guys...  :r

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

## #13 — LarsG, 2004-06-04T12:40Z

Nu har du med LIMIT två gånger. Ta bort den första.

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

## #14 — Peeer, 2004-06-04T12:40Z

Gah.. kan du inte skriva ut själva sql-satsen precis innan du exekverar den?

```
die('sql: ' . $query_limit_rsNyheterResten);
$rsNyheterResten = mysql_query($query_limit_rsNyheterResten, $Databasen) or die(mysql_error());
```

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

## #15 — Leijonkungen, 2004-06-04T12:47Z

Nu så!!!
Jag tog bort den andra LIMIT:en och vips så funkade det!
Stort tack till er alla för all hjälp!

Ha en skön helg!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/104960-paging-tidigare-hoppa-över
