---
title: "Undefined index"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/156524-undefined-index"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "tanten"
published: "2007-01-29T14:49:47.000Z"
updated: "2007-01-30T05:32:38.000Z"
replies: 15
views: 489
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/156524-undefined-index"
---

# Undefined index

## #1 — tanten, 2007-01-29T14:49Z

```php
function MySQLPagedResultSet($query,$pageSize,$cnx)
  {
    $resultpage = $_GET['resultpage'];  <--- här
    
    $this->results = @mysql_query($query,$cnx);
    $this->pageSize = $pageSize;
    if ((int)$resultpage <= 0) $resultpage = 1;
    if ($resultpage > $this->getNumPages())
      $resultpage = $this->getNumPages();
    $this->setPageNum($resultpage);
  }
```

 

Jag får Undefined index: för den markerade raden? 
Någon som kan tala om varför?   :)

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

## #2 — Peter S, 2007-01-29T14:55Z

Finns det någon del *&resultpage=N* i adressfältet? Du kan vilja använda isset() för att kontrollera huruvida GET-variabeln är satt:

```php
function MySQLPagedResultSet($query,$pageSize,$cnx) 
  {
    if (isset($_GET['resultpage'])){
      $resultpage = $_GET['resultpage'];  <--- här 
       
      $this->results = @mysql_query($query,$cnx); 
      $this->pageSize = $pageSize; 
      if ((int)$resultpage <= 0) $resultpage = 1; 
      if ($resultpage > $this->getNumPages()) 
        $resultpage = $this->getNumPages(); 
      $this->setPageNum($resultpage);
    }
  }
```

En annan kontroll du troligtvis också vill göra, är att värdet är numeriskt.

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

## #3 — fiddler, 2007-01-29T14:58Z

Testa att sätta "global $\_GET" längst upp i funktionen.

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

## #4 — tanten, 2007-01-29T15:13Z

> **fiddler skrev:**
>
> Testa att sätta "global $\_GET" längst upp i funktionen.

Då försvann indexfelet, men i stället kom <http://sorken.se/resultpage.php>som är samma rad som förut var 13.

Peter S. Nej det syns inget i adressfältet... funktionerna ligger i en egenfil, det finns en del fel på sidan som anropar funktionerna också, som jag tänkte jag skulle se om de fanns kvar när funktionerna fungerar...

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

## #5 — aasah, 2007-01-29T15:16Z

> **fiddler skrev:**
>
> Testa att sätta "global $\_GET" längst upp i funktionen.

Gör ingen nytta. "$\_arrayerna" är superglobala och syns inne i funktioner också direkt.

tanten:
Börja med att ta bort global-raden. 

$\_GET fångar värden som skickas med URL:n. Om din sida heter <http://sorken.se/resultpage.php> så finns inget värde att hitta. Om din url däremot vore:
<http://sorken.se/resultpage.php?resultpage=5>
så skulle $\_GET\['resultpage'\] ha ett värde, nämligen 5.

Hur kommer du till sidan? Och vad är det meningen att resultpage ska vara? Hur försöker du sätta ett värde?

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

## #6 — tanten, 2007-01-29T15:24Z

Så tog jag bort den och är tillbaka till 0 igen...  :(

Såg inte ditt redigerade svar, återkommer :-)

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

## #7 — Peter S, 2007-01-29T15:24Z

> **tanten skrev:**
>
> Då försvann indexfelet, men i stället kom <http://sorken.se/resultpage.php>som är samma rad som förut var 13.
> 
> Peter S. Nej det syns inget i adressfältet... funktionerna ligger i en egenfil, det finns en del fel på sidan som anropar funktionerna också, som jag tänkte jag skulle se om de fanns kvar när funktionerna fungerar...

Eftersom $\_GET innehåller värden från frågesträngen i adressfältet, bör det alltså finnas en del *&pageresult=N* i adressfältet för att din funktion skall fungera.

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

## #8 — aasah, 2007-01-29T15:25Z

tanten, mitt svar ovan är redigerat, läs om det!

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

## #9 — tanten, 2007-01-29T15:45Z

Det blir bara fel...  Är ju en sån liten fil och nog sjutton ska jag göra fel...  :r 

```php
<?php
require('pagedresults.php');
error_reporting(E_ALL);
$cnx = @mysql_connect('localhost','xxx','xxxx');
mysql_select_db('xxxx',$cnx);

$rs = new MySQLPagedResultSet("select * from smultron where finnsi=$finnsi", 5,$cnx);
?>
<html>
<head>
<title>Paged Results Demo</title>
</head>
<body>
<table>
<?php while ($row = $rs->fetchArray()): ?>
<tr><td><?=$row['namn']?></td><td><?=$row['besk']?></td></tr>
<?php endwhile; ?>
</table>
<p><?=$rs->getPageNav("finnsi=$finnsi")?></p>
</body>
</html>
```

 
Hör hur ni suckar...  
Jag med...

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

## #10 — tanten, 2007-01-29T16:00Z

Skulle väl ha skickat med hela classen också...

```php
<?php

class MySQLPagedResultSet
{

  var $results;
  var $pageSize;
  var $page;
  var $row;
  
  function MySQLPagedResultSet($query,$pageSize,$cnx)
  {
	$resultpage = $_GET['resultpage'];
    
    $this->results = @mysql_query($query,$cnx);
    $this->pageSize = $pageSize;
    if ((int)$resultpage <= 0) $resultpage = 1;
    if ($resultpage > $this->getNumPages())
      $resultpage = $this->getNumPages();
    $this->setPageNum($resultpage);
  }
  
  function getNumPages()
  {
    if (!$this->results) return FALSE;
    
    return ceil(mysql_num_rows($this->results) /
                (float)$this->pageSize);
  }
  
  function setPageNum($pageNum)
  {
    if ($pageNum > $this->getNumPages() or
        $pageNum <= 0) return FALSE;
  
    $this->page = $pageNum;
    $this->row = 0;
    mysql_data_seek($this->results,($pageNum-1) * $this->pageSize);
  }
  
  function getPageNum()
  {
    return $this->page;
  }
  
  function isLastPage()
  {
    return ($this->page >= $this->getNumPages());
  }
  
  function isFirstPage()
  {
    return ($this->page <= 1);
  }
  
  function fetchArray()
  {
    if (!$this->results) return FALSE;
    if ($this->row >= $this->pageSize) return FALSE;
    $this->row++;
    return mysql_fetch_array($this->results);
  }
  
  function getPageNav($queryvars = '')
  {
    $nav = '';
    if (!$this->isFirstPage())
    {
      $nav .= "<a href=\"?resultpage=".
              ($this->getPageNum()-1).'&'.$queryvars.'">Prev</a> ';
    }
    if ($this->getNumPages() > 1)
      for ($i=1; $i<=$this->getNumPages(); $i++)
      {
        if ($i==$this->page)
          $nav .= "$i ";
        else
          $nav .= "<a href=\"?resultpage={$i}&".
                  $queryvars."\">{$i}</a> ";
      }
    if (!$this->isLastPage())
    {
      $nav .= "<a href=\"?resultpage=".
              ($this->getPageNum()+1).'&'.$queryvars.'">Next</a> ';
    }
    
    return $nav;
  }
}

?>
```

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

## #11 — aasah, 2007-01-29T16:07Z

...

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

## #12 — aasah, 2007-01-29T16:15Z

Att detta inte funkar 

```php
function MySQLPagedResultSet($query,$pageSize,$cnx)
  {
    $resultpage = $_GET['resultpage'];  <--- här
    
    $this->results = @mysql_query($query,$cnx);
    $this->pageSize = $pageSize;
    if ((int)$resultpage <= 0) $resultpage = 1;
    if ($resultpage > $this->getNumPages())
      $resultpage = $this->getNumPages();
    $this->setPageNum($resultpage);
  }
```

 beror på tidigare angivna fel. Den fungerar bara om det finns ett värde på resultpage i sidans URL.

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

## #13 — tanten, 2007-01-29T16:23Z

Men vad är det då denna ska göra, är det inte vad jag trott? Skapa en url till adressfältet.
\<?=$rs-\>getPageNav("finnsi=$finnsi")?\>

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

## #14 — aasah, 2007-01-29T20:23Z

Ett skript körs uppifrån och ner. Oavsett vad getPageNav gör, så ligger det åtskilliga rader längre ner än där felet uppstår. Alltså kommer skriptet aldrig så långt.

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

## #15 — tanten, 2007-01-29T20:46Z

Ja någonting är i alla fall tok... :-) Har läst tutorialen uppifrån och ner nu hela dagen utan att se vad jag missar. Funderade ett tag på om det var gjort för php5, men det är ju ett tag sedan den skrevs så det kan väl inte vara fallet.
Tycker att mitt sista försök nästan är identiskt med <http://www.sitepoint.com/article/php-paging-result-sets/5>
och det var metoden jag ville prova att lära mig... så om det inte fungerar, vilket ju tycks vara fallet så får det bli paging på vanliga sättet, vid behov :-)
Men men... någonting lärde jag mig under tiden. :-)

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

## #16 — tanten, 2007-01-30T05:32Z

Överger den här metoden nu och markerar den som löst fast den är Olöst så ingen kopierar klassen eller använder den tutorial som jag gjorde.   :) 
Tack allihopa för era svar!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/156524-undefined-index
