---
title: "bläddra"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/85229-bläddra/page2"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Rickard"
published: "2003-09-04T04:12:11.000Z"
updated: "2003-09-06T21:01:51.000Z"
replies: 52
views: 843
page: 2
pages: 3
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/85229-bläddra"
---

# bläddra

_Sida 2 av 3._

## #21 — Matte, 2003-09-04T20:17Z

Det som fungerar med äldre typ av kod fungerar för det mesta i nyare versioner av PHP.

Något du inte har, men som du borde ha haft, är länkar, fast de skulle visa fel.
Av någon anledning blir det fel när du ska hämta antalet rader. Vet inte om detta beror på PHP-versionen.

Vi gör några ändringar.

1\. Ändra ditt sökformulär till method="get"

2\. Ändra följande kod

```php
   // Hämta först antalet rader i resultatet 
   $sql="SELECT COUNT(*) FROM trehjulinggb WHERE namn LIKE '%$namn%' 
         AND mail LIKE '%$mail%' AND datum LIKE '%$datum%'"; 
   $result=mysql_query($sql); 
   $rows_tot = mysql_result($result, 0);
```

 
Till

```php
   // Hämta först antalet rader i resultatet 
   $sql="SELECT COUNT(*) AS row_tot FROM trehjulinggb WHERE namn LIKE '%$namn%' 
         AND mail LIKE '%$mail%' AND datum LIKE '%$datum%'"; 
   $result=mysql_query($sql); 
   $rows_tot = mysql_result($result, 0, 'row_tot');
```

 

3\. Ändra funktionen paginglinks till:

```php
function paginglinks($page, $pages_tot) {

   global $HTTP_SERVER_VARS['QUERY_STRING'];

   // Paging-länkar, ta bort/ändra det du inte vill ha
   
   // Hämtar QUERY_STRING och tar bort page från den 
   $getvar = $HTTP_SERVER_VARS['QUERY_STRING']; 
   $search = "/(^page=\\d*&?|&page=\\d*)/i"; 
   $getvar = preg_replace($search, "", $getvar); 
   if ($getvar != "" && $page != 0) $getvar = "&".$getvar; 
   
   // Skriv ut vilken sida man är på
   echo "Sidan ".($page + 1)." av ".($pages_tot + 1)." <br>\n";
   
   if ($page > 0) { // Om man inte är på första sidan visas dom här länkarna
      echo "<a href=\"$PHP_SELF?$getvar\">Första</a> ";
      echo "<a href=\"$PHP_SELF?page=" . ($page - 1) . "$getvar\">Föregående</a> | ";
   } else {
      echo "Första ";
      echo "Föregående | ";
   }

   if($pages_tot > 0) { // Skriver ut länkar till alla sidor om det är fler än 1 sida
      for($i = 0; $i <= $pages_tot; $i++) {
         if($i == $page) {
            echo " " . ($i + 1) . " ";
         } else {
            echo " <a href=\"$PHP_SELF?page=$i$getvar\">" . ($i + 1) . "</a> ";
         }
      }
   } else {
      echo " 1 ";
   }

   if ($page < $pages_tot) { // Om man inte är på sista sidan visas dom här länkarna
      echo " | <a href=\"$PHP_SELF?page=" . ($page + 1) . "$getvar\">Nästa</a> ";
      echo "<a href=\"$PHP_SELF?page=$pages_tot$getvar\">Sista</a>";
   } else {
      echo " | Nästa ";
      echo "Sista";
   }

} // Slut funktion
```

\[EDIT\]
Glömmer alltid lägga på dubbla backslash för att det ska bli enkelt backslash när man sparar. Fixat nu.

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

## #22 — Rickard, 2003-09-04T20:26Z

ööh...   

hmm...
Parse error: parse error, expecting \`','' or \`';'' in /home/noratx/public_html/ricky/search.php on line 184

Rad 184:

```
global $HTTP_SERVER_VARS['QUERY_STRING'];
```

Vad jag kan se så har vi ett semikolon där..  eller är det något annat som är müssli som jag inte kan se? =)

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

## #23 — Matte, 2003-09-04T20:33Z

Fel av mig. Ska vara

```
global $HTTP_SERVER_VARS;
```

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

## #24 — Rickard, 2003-09-04T20:35Z

mumma mumma...

du är en guldgruva..  vet du det?

Tackar så hemskt mycket för den mycket snabba och fina hjälpen..  =)

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

## #25 — Rickard, 2003-09-04T20:45Z

det var bara en liten sak till som jag inte har tänkt på...  =)

Just nu listar den upp allt från ID 1 och ner  (dvs. sista ID't är på sista sidan)..  hur tusan ändrar man så den listar allt tvärt om?

Har pillat med det förut...  sort by DESC är ju ett sätt.. men för att få det tvärt om, som ovan beskrivet...  det mins jag inte...  =)

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

## #26 — Matte, 2003-09-04T20:53Z

Först vill jag rätta till funktionen paginglinks lite:

```php
function paginglinks($page, $pages_tot) {

   global $HTTP_SERVER_VARS;

   // Paging-länkar, ta bort/ändra det du inte vill ha
   
   // Hämtar QUERY_STRING och tar bort page från den 
   $getvar = $HTTP_SERVER_VARS['QUERY_STRING']; 
   $search = "/(^page=\\d*&?|&page=\\d*)/i"; 
   $getvar = preg_replace($search, "", $getvar); 
   if ($getvar != "") $getvar = "&".$getvar; 
   
   // Skriv ut vilken sida man är på
   echo "Sidan ".($page + 1)." av ".($pages_tot + 1)." <br>\n";
   
   if ($page > 0) { // Om man inte är på första sidan visas dom här länkarna
      echo "<a href=\"$PHP_SELF?page=0$getvar\">Första</a> ";
      echo "<a href=\"$PHP_SELF?page=" . ($page - 1) . "$getvar\">Föregående</a> | ";
   } else {
      echo "Första ";
      echo "Föregående | ";
   }

   if($pages_tot > 0) { // Skriver ut länkar till alla sidor om det är fler än 1 sida
      for($i = 0; $i <= $pages_tot; $i++) {
         if($i == $page) {
            echo " " . ($i + 1) . " ";
         } else {
            echo " <a href=\"$PHP_SELF?page=$i$getvar\">" . ($i + 1) . "</a> ";
         }
      }
   } else {
      echo " 1 ";
   }

   if ($page < $pages_tot) { // Om man inte är på sista sidan visas dom här länkarna
      echo " | <a href=\"$PHP_SELF?page=" . ($page + 1) . "$getvar\">Nästa</a> ";
      echo "<a href=\"$PHP_SELF?page=$pages_tot$getvar\">Sista</a>";
   } else {
      echo " | Nästa ";
      echo "Sista";
   }
   
}
```

 
Och sedan sorteringen:

```php
   // Hämta rader och skriv ut 
   $sql = "SELECT * FROM trehjulinggb WHERE namn LIKE '%$namn%' 
           AND mail LIKE '%$mail%' AND datum LIKE '%$datum%' 
           ORDER BY id DESC LIMIT $start,$limit";
```

 
Du kan köra 'ORDER BY datum DESC' som ett alternativ.

\[EDIT\]
Fixade tillbaka de strippade backslashen i regexpen.

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

## #27 — Rickard, 2003-09-04T21:00Z

heh...

global $HTTP_SERVER_VARS\['QUERY_STRING'\]; 

Den där kom vi ju överäns om att den inte funkade som förväntat...  =)

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

## #28 — Matte, 2003-09-04T21:06Z

> **Rickard skrev:**
>
> heh...
> 
> global $HTTP_SERVER_VARS\['QUERY_STRING'\]; 
> 
> Den där kom vi ju överäns om att den inte funkade som förväntat...  =)

Nu förstår jag inte  :q 

Hehe, det går lite för fort ibland när man klipper och klistrar  :e

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

## #29 — Rickard, 2003-09-04T21:11Z

titta på sidan ett...  sammanlaggt 5 postningar härifrån...   =)
global $HTTP_SERVER_VARS\['QUERY_STRING'\];
bytte vi ut mot :
global $HTTP_SERVER_VARS;
\=)

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

## #30 — Matte, 2003-09-04T21:17Z

> **Matte skrev:**
>
> Hehe, det går lite för fort ibland när man klipper och klistrar  :e

Jodå, jag är medveten om det. Klippte klistrade min gamla kod för ändringar, och missade det.  :)

Hur funkar det annars nu?

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

## #31 — Rickard, 2003-09-04T21:21Z

hehe..  ok...  =)

jorå..  det fungerar utmärkt...  precis så som jag ville ha det...  =)

Nu ska jag bara klippa å klistra lite så föra över det till gästboksdelen där besökarna får skriva...

Just den här delen ingår i ett administrations-gränssnitt...  =)
Sen ska jag bara klura ut ett sätt att kunna snabbt och smidigt radera ett inlägg genom att bara knappa in id't i ett fält.. eller ännu bättre, lägga en göra en länk av ID siffran som visas nu för att få inlägget raderat..  =)

Förhoppningsvis klarar jag det på egen hand...  =)

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

## #32 — Matte, 2003-09-04T21:23Z

Parse error: parse error, expecting \`'\]'' in /home/noratx/public_html/ricky/search.php on line 137

Därför jag undrade :)

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

## #33 — Rickard, 2003-09-04T21:31Z

\*heh\* jo...

Jag döpte om till html å drog in scriptet i frontpage för en liten omstrukturering på ett par bilder...  (ser nästan i kors så jag ser inte reiktigt vad det står på vissa ställen)..

Å tror du inte att frontpage slog runt å ändrade massa grejor, bytte "  mot &quote etc...   

men det funkar nu igen.. reload bara..  =)

är trött som en tok å måste få klart detta så snart som möjligt..  =)

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

## #34 — Matte, 2003-09-04T21:34Z

Då ska inte jag störa mer :)

Ett litet förslag bara.
Ha dina paginglänkar i överkant också. Då behöver man inte rulla på sidan för att bläddra mellan sidorna.

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

## #35 — Rickard, 2003-09-04T21:37Z

Hmm..   om du tittar nu i 
<http://server.midnight-sun.org:82/~noratx/ricky/guestbook/index.phps>

så ser du ju hur det är strukturerat där....
Sitter å funderar på var jag kan klämma in pagingen där? För den typ av paging jag har där fullkommligt suger...

iomed att jag inte har några gobala variabler i början där och därmed inte har nånstans att deklarera $page i globals...

\*fundera\* har du någon ide? =)

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

## #36 — Rickard, 2003-09-04T21:43Z

heh, du gör allt annat än å stör...  =)

Å du behöver absolut inte ta itu med problem nummer två..  det kan jag säkert lösa själv förr eller senare...   =)

Men du ska ha ett stort tack för hjälpen...  verkligen.  =)

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

## #37 — Matte, 2003-09-04T21:49Z

Ligger det inte i en funktion så behöver du inte globaldeklarera någonting.

Du gör i princip på samma sätt.
1\. Räkna antalet rader som du hämtar. Samma kriterier som när du sedan listar
2\. Bestäm hur många du vill visa per sida
3\. Räkna ut hur många sidor det blir
4\. Kolla om du har variabeln $page och att den är i godkännt intervall, annars sätt till 0.
5\. Beräkna $start för listningen
6\. Använd samma funktion paginglinks() för att skriva ut paginglänkarna.
7\. Lista dina utvalda poster

Raden "Sidan 1 av 2" kan du ta väck från funktionen och lägga var och om du vill ha den.

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

## #38 — Rickard, 2003-09-04T21:55Z

heh...   sagt och gjort..  jag löste det faktiskt själv innan jag hant få ett mail om din postning...

Fick använda mig av den lilla logiken jag fortfarande har kvar...
\*gäspar\*
det logiska sinnet har ju en viss förmåga att minska ju tröttare man blir..  =)

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

## #39 — Matte, 2003-09-04T21:58Z

Nu går jag och lägger mig.

Godnatt, och ha så roligt med ditt projekt inatt :)

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

## #40 — Rickard, 2003-09-04T22:02Z

Hmm...

Nånting säger mig att följande kod inte fungerar när jag inte har något sökförmulär:

```
  // Hämtar QUERY_STRING och tar bort page från den
   $getvar = $HTTP_SERVER_VARS['QUERY_STRING'];
   $search = "/(^page=d*&?|&page=d*)/i";
   $getvar = preg_replace($search, "", $getvar);
   if ($getvar != "") $getvar = "&".$getvar;
```

För den visar allt så fint, men pagingen funkar inte som den ska..  trycker jag på sida tv, eller tre eller whatever så visas nada...

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

---

Tråden på webben: https://www.webforum.nu/amne/php/85229-bläddra/page2  
Föregående sida: https://www.webforum.nu/amne/php/85229-bläddra.md  
Nästa sida: https://www.webforum.nu/amne/php/85229-bläddra/page3.md
