---
title: "felmeddelande vid paging"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/134766-felmeddelande-vid-paging"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "azah"
published: "2005-09-24T20:06:28.000Z"
updated: "2005-09-26T14:07:53.000Z"
replies: 7
views: 614
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/134766-felmeddelande-vid-paging"
---

# felmeddelande vid paging

## #1 — azah, 2005-09-24T20:06Z

Jag håller på att koda min första gästbok. Den är väldigt enkel, men funkar. Nu tänkte jag ge mig i kast med en paging-funktion. Hittade en guide [här](http://biorust.com/index.php?page=tutorial_detail&tutid=103), som jag utgick från. Dock får jag lite felmeddelanden: 

**Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in form.php on line 51**

Rad 51 ser ut som följande: while ($rad = mysql_fetch_array ($data) )

Koden för form.php ser ut såhär: 

```php
$open = mysql_connect("xxx", "xxx", "xxx");

if ( $_GET['number'] == NULL ){
$limit = 10;
} else {
$limit = $_GET['number'];
}

if ($_GET['page'] == NULL){
$start = 0;
} else {
$start = $_GET['page'];
}

if($_GET['page'] < 0){
header("Location:form.php?page=0&limit=.$limit");
}

$data = mysql_db_query("databasen", "SELECT namn, hemsida, text FROM gbok ORDER BY id DESC LIMIT '$start', '$limit'");

while ($rad = mysql_fetch_array ($data) ) {

print "<p>";
print "<b>Namn: </b>";
print $rad["namn"];
print "<br />";

print "<b><a href=\"$rad[hemsida]\">Hemsida</a></b>";
print "<br />";

print "<b>Text: </b>";
print $rad["text"];
print "</p><hr />";

} 

$previous = $start + $limit;
$next = $start - $limit;
echo '<a href="form.php?start='.$previous.'">Föregående sida</a> - ';
echo '<a href="form.php?start='.$next.'">Nästa sida</a>';
```

På form.php finns också ett formulär som skickar data till databasen m.h.a. gbok.php:

```php
header("Location:form.php");

if( empty($namn) ){ exit(); }
if( empty($text) ){ exit(); }

$open = mysql_connect("xxx", "xxx", "xxx");
$dbinfo = mysql_db_query("databasen", "INSERT gbok (namn, hemsida, text) VALUES ('$namn', '$url', '$text')");

mysql_close($open);
```

Finns det någon vänlig själ som förstår det här bättre än jag, och som dessutom har tid att hjälpa mig? tacksam för svar.

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

## #2 — Matte, 2005-09-24T20:23Z

Tag bort fnuttarna runt $start och $limit.

Sedan säger manualen om [mysql_db_query](http://se.php.net/manual/en/function.mysql-db-query.php):

> This function is deprecated, do not use this function. Use [mysql_select_db()](http://se.php.net/manual/en/function.mysql-select-db.php) and [mysql_query()](http://se.php.net/manual/en/function.mysql-query.php) instead.

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

## #3 — azah, 2005-09-24T20:50Z

Tack för snabbt svar :)

Det gjorde susen. Felmeddelandena försvann iallafall. Men däremot får jag inte nästa/föregående-länkarna att fungera. Klickar jag på nästa kommer jag till samma sida. Skriver jag däremot in <http://xxx.com/form.php?page=2> kommer jag till nästa sida. Så det är någon som ligger där och spökar.

Jag förstår inte heller hur jag skall ändra på mysql_db_query(). Om jag t.ex. byter till mysql_query får jag följande felmeddelande: **mysql_query(): supplied argument is not a valid MySQL-Link resource** samt någon varning om mysql_fetch_array(). Kanske jag som är lite trög...

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

## #4 — Matte, 2005-09-24T20:56Z

Byt ut *start* mot *page* i dina paging-länkar. Det är *page* du fångar upp i skriptet.

mysql_select_db() lägger du tillsammans med mysql_connect():

```php
$open = mysql_connect("xxx", "xxx", "xxx");
mysql_select_db('databasen');
```

Och din mysql_query() kör du utan första argumentet:

```php
$data = mysql_query("SELECT namn, hemsida, text FROM gbok ORDER BY id DESC LIMIT $start, $limit");
```

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

## #5 — azah, 2005-09-24T21:07Z

Jo, jag tyckte det var mest logiskt med page också, så jag testade med det. Men jag fick det inte att fungera till 100%, därför frågade jag. Nu räknar koden fel på något sätt, så att man kommer till sidan 10 efter första sidan. Men det skall jag nog kunna lösa om jag sätter mig och experimenterar lite.

Men tack så hemskt mycket för hjälpen.  :) Nu kanske jag kan få igång mig gästbok snart!

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

## #6 — azah, 2005-09-26T12:58Z

Får det inte att funka riktigt... Som det är nu funkar pagingen hyfsat, den delar iaf upp inläggen med tio på varje sida. Men det är själva länkarna som är problemet. Länken för "föregående" ligger kvar hela tiden, även om det inte finns några föregående sidor. Klickar man på den länken, så kommer man till en "negativ" sida, eftersom koden räknar minus för varje klick.

Med i paging-scriptet låg en if-sats som skulle ordna detta. Om sidumret blev mindre än noll, skulle man vidarebefordras till första sidan. Dock får jag inte detta att fungera riktigt. 

If-satsen ser ut som följande: 

```php
if ($_GET['sida'] < 0){
header("Location: form.php?sida=0&limit=.$limit");
}
```

Felmeddelandet: **Cannot modify header information - headers already sent by (output started at form.php:9)**. Det låter som det inte går att ändra "headers", eftersom det redan är gjort tidigare. Det enda stället med header-kod är på gbok.php (se tidigare inlägg). Tänker jag rätt? I så fall, vad kan jag göra åt det?

Det skulle vara mer praktiskt om föregående-länken endast skrev ut där det behövs.

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

## #7 — Matte, 2005-09-26T13:18Z

Du får inte ha någon output före din header. 
Alltså ingen HTML echo eller print.

Men varför inte göra:

```php
if ($_GET['sida'] < 0){
   $_GET['sida'] = 0;
}
```

Först hade du 'start', sedan hade du 'page', nu har du 'sida' :)

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

## #8 — azah, 2005-09-26T14:07Z

Visst ja, det stämmer. Har nog läst det nånstans. Minnet är kort ibland :S

Tack så mycket, men jag fick det inte riktigt att funka med koden du skickade. Blev ett felmeddelande om mysql_fetch_array. Nu spann jag vidare på idén om att inte visa föregående-länken mer än när det behövdes. Lyckades pilla ihop en if-sats som verkar funka:

```php
if ($_GET['sida'] < 2){
echo '<a href="form.php?sida='.$next.'">Nästa ></a>';
} else {
echo '<a href="form.php?sida='.$previous.'">< Föregående</a> - ';
echo '<a href="form.php?sida='.$next.'">Nästa ></a>';
}
```

Då skrivs bara de länkar som behövs ut. Men tack så jättemycket för din hjälp, jag är jättetacksam   :) Nu kommer det förhoppningsvis inga fler frågor om det här från mig.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/134766-felmeddelande-vid-paging
