/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
næste og forrige knap
Fra : Maxi


Dato : 06-08-03 13:36

Jeg henter en masse data fra databasen og jeg vil gerne dele det op i flere
dele så det ikke bliver en lang side. Jeg har så lavet denne her side men
det fungere ikke helt endnu. Den bliver ved med at vide de samme to rækker
fra tabelen. Er der nogen der kan overskue denne kode og se hvad der lige er
mangler?

<?php
include "database.php";

$limit=2; // rows to return
$numresults=mysql_query("select * from pet");
$numrows=mysql_num_rows($numresults);

// next determine if offset has been passed to script, if not use 0
if (empty($offset)) {
$offset=1;
}

// get results
$result=mysql_query("select pet_id, name from pet limit $offset,$limit");
$num_rows = mysql_num_rows( $result );

// now you can display the results returned
if ($num_rows > 0)
{
print "<table>";
while ($data=mysql_fetch_array($result))
{
print "<TR>\n";
print "<TD>$data[pet_id]</TD>\n";
print "<TD>$data[name]</TD>\n";
//
print "<TD>$data[owner]</TD>\n";
print "</TR>\n";
}
print "</table>";
}

// next we need to do the links to other results

if ($offset==1) { // bypass PREV link if offset is 0
$prevoffset=$offset-1;
print "<a href='next.php?offset=$prevoffset'>PREV</a> &nbsp; \n";
}

// calculate number of pages needing links
$pages=intval($numrows/$limit);

// $pages now contains int of pages needed unless there is a remainder from
division
if ($numrows%$limit) {
// has remainder so add one page
$pages++;
}

for ($i=1;$i<=$pages;$i++) { // loop thru
$newoffset=$limit*($i-1);
print "<a href='next.php?offset=$newoffset'>$i</a> &nbsp; \n";
}

// check to see if last page
if (!(($offset/$limit)==$pages) && $pages!=1) {
// not last page so give NEXT link
$newoffset=$offset+$limit;
print "<a href='next.php?offset=$newoffset'>NEXT</a><p>\n";
}

?>




 
 
Thomas Lindgaard (06-08-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 06-08-03 17:59

Maxi wrote:
> Jeg henter en masse data fra databasen og jeg vil gerne dele det op i flere
> dele så det ikke bliver en lang side. Jeg har så lavet denne her side men
> det fungere ikke helt endnu. Den bliver ved med at vide de samme to rækker
> fra tabelen. Er der nogen der kan overskue denne kode og se hvad der lige er
> mangler?

[snip]

> // next determine if offset has been passed to script, if not use 0
> if (empty($offset)) {
> $offset=1;
> }

Hvis $offset bliver sendt til denne side fra en form på den foregående,
så skal du enten finde den i $_POST eller $_GET - dvs. hvis der i
<form>-tagget står

method="post"

så brug

$_POST['offset']

og hvis der står method="get" eller ingenting så brug

$_GET['offset']

Formvariable bliver ikke automagisk til variable i dit PHP-script
længere (med mindre man slår register_globals til i php.ini eller lignende).

[mere snip]

Mvh.
/Thomas


Jan V.Pedersen (06-08-2003)
Kommentar
Fra : Jan V.Pedersen


Dato : 06-08-03 18:12

Thomas Lindgaard:
> <form>-tagget står
>
> method="post"
>
> så brug
>
> $_POST['offset']
>
> og hvis der står method="get" eller ingenting så brug
>
> $_GET['offset']
>
>

Er det meningen at der skal være enkle apostrofer (?) inni
klammeparantesen? Eller er det ikke forskjell på enkle og doble
hermetegn?

--
mvh Jan Vidar
www.janvidar.com

Johan Holst Nielsen (07-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 07-08-03 10:06



Jan V.Pedersen wrote:
> Thomas Lindgaard:
>
>><form>-tagget står
>>
>> method="post"
>>
>>så brug
>>
>> $_POST['offset']
>>
>>og hvis der står method="get" eller ingenting så brug
>>
>> $_GET['offset']
>>
> Er det meningen at der skal være enkle apostrofer (?) inni
> klammeparantesen? Eller er det ikke forskjell på enkle og doble
> hermetegn?
>

Ikke i dette tilfælde... Så kan det være ligemeget

mvh
johan


Thomas Lindgaard (07-08-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 07-08-03 11:25

Johan Holst Nielsen wrote:
>
>
> Jan V.Pedersen wrote:
>
>> Thomas Lindgaard:
>>
>>> <form>-tagget står
>>>
>>> method="post"
>>>
>>> så brug
>>>
>>> $_POST['offset']
>>>
>>> og hvis der står method="get" eller ingenting så brug
>>>
>>> $_GET['offset']
>>>
>> Er det meningen at der skal være enkle apostrofer (?) inni
>> klammeparantesen? Eller er det ikke forskjell på enkle og doble
>> hermetegn?
>>
>
> Ikke i dette tilfælde... Så kan det være ligemeget

Jap - her er det ligegyldigt.

Forskellen på ' og " er at strenge i " bliver parset således at du
f.eks. kan gøre følgende:

<?php
$en_variabel = 'en ost';
print "musen spiste $en_variabel";
?>

Strenge i ' er blot ren tekst og kan ikke bruges til sårn noget huttelihut.

Det betyder så også at det er mere effektivt at bruge ' fordi strengen
ikke bliver parset. Jeg bruger selv kun " når jeg har et specifikt behov
for at der skal indsættes variable i strengen.

Mvh.
/Thomas


Jan V.Pedersen (07-08-2003)
Kommentar
Fra : Jan V.Pedersen


Dato : 07-08-03 11:56

Thomas Lindgaard:
> Det betyder så også at det er mere effektivt at bruge ' fordi strengen
> ikke bliver parset. Jeg bruger selv kun " når jeg har et specifikt behov
> for at der skal indsættes variable i strengen.
>
>
Tusen takk til dere begge to :)

--
mvh Jan Vidar
www.janvidar.com

Maxi (07-08-2003)
Kommentar
Fra : Maxi


Dato : 07-08-03 21:20

Tak for alle jeres svar. Nu har jeg fået det nogenlunde til at virke på en
mysql database. Men jeg har fundet ud af at i en MS sql server har man ikke
en limit funktion
så følgende linje kode kan jeg ikke bruge :
$result=mysql_query("select pet_id, name from pet limit $offset,$limit");

Så jeg skal lave det anderledes. Er der nogen der har ideer til hvordan man
kan lave det tilsvarende "limit" i en ms sql ? jeg forestiller mig noget i
retning TOP 10 men det er vist ikke helt det samme.

"Maxi" <dilorjaan50@hotmail.com> wrote in message
news:3f30f638$0$13166$edfadb0f@dread15.news.tele.dk...
> Jeg henter en masse data fra databasen og jeg vil gerne dele det op i
flere
> dele så det ikke bliver en lang side. Jeg har så lavet denne her side men
> det fungere ikke helt endnu. Den bliver ved med at vide de samme to rækker
> fra tabelen. Er der nogen der kan overskue denne kode og se hvad der lige
er
> mangler?
>
> <?php
> include "database.php";
>
> $limit=2; // rows to return
> $numresults=mysql_query("select * from pet");
> $numrows=mysql_num_rows($numresults);
>
> // next determine if offset has been passed to script, if not use 0
> if (empty($offset)) {
> $offset=1;
> }
>
> // get results
> $result=mysql_query("select pet_id, name from pet limit $offset,$limit");
> $num_rows = mysql_num_rows( $result );
>
> // now you can display the results returned
> if ($num_rows > 0)
> {
> print "<table>";
> while ($data=mysql_fetch_array($result))
> {
> print "<TR>\n";
> print "<TD>$data[pet_id]</TD>\n";
> print "<TD>$data[name]</TD>\n";
> //
> print "<TD>$data[owner]</TD>\n";
> print "</TR>\n";
> }
> print "</table>";
> }
>
> // next we need to do the links to other results
>
> if ($offset==1) { // bypass PREV link if offset is 0
> $prevoffset=$offset-1;
> print "<a href='next.php?offset=$prevoffset'>PREV</a> &nbsp; \n";
> }
>
> // calculate number of pages needing links
> $pages=intval($numrows/$limit);
>
> // $pages now contains int of pages needed unless there is a remainder
from
> division
> if ($numrows%$limit) {
> // has remainder so add one page
> $pages++;
> }
>
> for ($i=1;$i<=$pages;$i++) { // loop thru
> $newoffset=$limit*($i-1);
> print "<a href='next.php?offset=$newoffset'>$i</a> &nbsp; \n";
> }
>
> // check to see if last page
> if (!(($offset/$limit)==$pages) && $pages!=1) {
> // not last page so give NEXT link
> $newoffset=$offset+$limit;
> print "<a href='next.php?offset=$newoffset'>NEXT</a><p>\n";
> }
>
> ?>
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste