Avatar billede henrik_79 Nybegynder
18. juni 2004 - 23:22 Der er 11 kommentarer og
1 løsning

Hvordan laver man viser fra på et sidevælger script ?

Jeg bruger koden:

    $antal = mysql_num_rows(mysql_query("select * from products where category = '$cat_id'"));
if($show_from>0)
{
$bagud = $show_from-$prside;
echo "<a href='$PHP_SELF?page=item&cat_id=$cat_id&show_from=$bagud'>Previous</a> ";
}
$page = 1;
for($start=0; $antal > $start; $start=$start+$prside){
if($show_from != $page*$prside-$prside)
{
echo "<a href='$PHP_SELF?page=item&cat_id=$cat_id&show_from=$start'>$page</a> ";
}else{
echo $page." ";
}
$page = $page+1;
}
if($show_from< $antal-$prside)
{
$naeste = $show_from+$prside;
echo " <a href='$PHP_SELF?page=item&cat_id=$cat_id&show_from=$naeste'>Next</a>";

Hvordan får jeg det lavet så den viser:

Showing from x to x of x total
Avatar billede jaw Nybegynder
18. juni 2004 - 23:27 #1
Har du ikke en limit på din query du viser? Går udfra, at det er: LIMIT $start, $prside kan det passe?

Så kan du jo lave noget ala:

$vis_start = $start * $prside;
$vis_slut = $vis_start + $prside;

echo "Viser fra $vis_start til $vis_slut";
Avatar billede jaw Nybegynder
18. juni 2004 - 23:28 #2
echo "Showing from $vis_start to $vis_slut of $antal";

Havde ikke lige læst din sidste linje, sry.
Avatar billede henrik_79 Nybegynder
18. juni 2004 - 23:33 #3
$prside = 4;

det der hører til queryen er her...

$show_from = $_GET[show_from];

if(!$_GET[show_from])
{
$show_from = 0;
}


$query = mysql_query("select * from products where category = '$cat_id' limit $show_from, $prside");



Det du havde lavet gav resultatet: Showing from 176 to 180 of 43 ??? ;-)
Avatar billede jaw Nybegynder
18. juni 2004 - 23:39 #4
Hov :) Men det er jo klart egentlig...

Prøv det her i stedet:
$vis_start = $show_from; //jo egentlig overflødig, men så holder jeg den som ovenover
$vis_slut = $show_from + $prside;

echo"Showing from $vis_start to $vis_slut of $antal";

Den burde være lidt bedre...
Avatar billede henrik_79 Nybegynder
18. juni 2004 - 23:41 #5
Det virker heller ikke...

Så viser den i den første

Showing from 0 to 4 of 43 (På første side)
Og
Showing from 40 to 44 of 43 (På sidste side)
Avatar billede jaw Nybegynder
18. juni 2004 - 23:47 #6
Ja, okey... Men det var da tæt på - nu er den der :)

$vis_start = $show_from; //jo egentlig overflødig, men så holder jeg den som ovenover
$vis_slut = $show_from + $prside;

if($vis_slut >= $antal) {
  echo"Viser from $vis_start to $antal of $antal";
} else {
echo"Viser fra $vis_start til $vis_slut of $antal";
}
Avatar billede henrik_79 Nybegynder
18. juni 2004 - 23:50 #7
Tilføjede selv lige

if ($show_from == 0) { $vis_start = 1; }


For at omgå problemet med Showing from 0 to 4 of 43



Takker for hjælpen... smid lige et svar ;-)
Avatar billede jaw Nybegynder
18. juni 2004 - 23:51 #8
Det var så sandelig så lidt :)
Avatar billede jaw Nybegynder
18. juni 2004 - 23:53 #9
Den med 0 til 4 havde jeg faktisk ikke lige luret endnu - lod kun mærke til 44 of 43 - men shhh, det kan jo være vores lille hemmelighed :-)
Avatar billede henrik_79 Nybegynder
18. juni 2004 - 23:54 #10
Man skal vel også lave en smule selv....

Problemet var nu heller ikke at lave det, men mere at gennemskue regnestykket ;-)
Avatar billede jaw Nybegynder
18. juni 2004 - 23:55 #11
Ja, ja... Det er den kendte klassiker :) Tak for point...
Avatar billede henrik_79 Nybegynder
19. juni 2004 - 00:21 #12
Det var så lidt..... hmm... troede ellers kun det var mig der ik ku regne (på denne tid af natten)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester