Avatar billede iphase Nybegynder
03. juni 2003 - 12:17 Der er 17 kommentarer og
1 løsning

for løkke igen

hvorfor ændre værdierne i $pmax og $pmin sig ikke?
de burde skrifte hvergang løkken starter. ikk?

<?php

$maxrows=1557;
$changelimit=50;
$page=1;
for($i = $maxrows; $i >= 0, $page <= 10; $i - $changelimit){

    $pmax = $i;
    $pmin = $i - $changelimit;

    echo "[<a href=?page=listjournals&max=$pmax&min=$pmin&changelimit=$changelimit>$page</a>]";

    $page++;
}
?>

scriptet er til at lave en liste over de 10 første sider i et database udtræk. således at man kan hoppe direkte istedet for at bladre.
Avatar billede Brian Moos Lindberg Praktikant
03. juni 2003 - 12:33 #1
Jeg er ikke helt sikker på at jeg forstår dit spørgsmål, men du ændrer jo ikke værdien af hverken $maxrows eller $changelimit, så når du skriver $i = $maxrows sker der ingen ændring i værdien af $i...

/Brian
Avatar billede tipsen Nybegynder
03. juni 2003 - 12:35 #2
Kan heller ikke forstå ovenstående kode - vist nok unødvendigt bøvlet!
Avatar billede Brian Moos Lindberg Praktikant
03. juni 2003 - 12:36 #3
kan du ikke hellere forklare hvad der er du gerne vil have ? - så er jeg ret sikker på at nogen kan kode det til dig...

/Brian.
Avatar billede roenving Novice
03. juni 2003 - 12:37 #4
Understøtter php ikke addbyvalue, så:

for($i = $maxrows; $i >= 0, $page <= 10; $i -= $changelimit){
Avatar billede iphase Nybegynder
03. juni 2003 - 12:39 #5
altså i min for løkke skriver jeg "$i - $changelimit"
og det resulterer jo i at $i bliver mindre for hvergang løkken kører. ikk?

for der er meningen at $pmax heletiden skal have en mindre værdi.
Avatar billede Brian Moos Lindberg Praktikant
03. juni 2003 - 12:41 #6
hvad så med:
for($i = $maxrows; $i >= 0, $page <= 10; $i - ($changelimit * $page)){

???
Avatar billede tipsen Nybegynder
03. juni 2003 - 12:43 #7
iphase: Hvilket output ønsker du?
Avatar billede iphase Nybegynder
03. juni 2003 - 12:46 #8
output skal være

side [1][2][3][4][5] osv.
hver tal skal være links
[<a href=?page=listjournals&max=$pmax&min=$pmin&changelimit=$changelimit>$page</a>]

i hvert link skal $pmax og $pmin værdierne for hver side minuses med indholdet af $changelimit. $changelimit bruges til at holde styr på hvor mange resultater man vil se pr. side.
Avatar billede erikjacobsen Ekspert
03. juni 2003 - 12:46 #9
for($i = $maxrows; $i >= 0 && $page <= 10; $i=$i - $changelimit){
Avatar billede Brian Moos Lindberg Praktikant
03. juni 2003 - 12:46 #10
således ?

<?php

$maxrows=1557;
$changelimit=50;
$page=1;
for($i = $maxrows; $i >= 0, $page <= 10; $i = $i - $changelimit){

    $pmax = $i;
    $pmin = $i - $changelimit;

    echo "[<a href=?page=listjournals&max=$pmax&min=$pmin&changelimit=$changelimit>$page</a>]";

    $page++;
}
?>
Avatar billede iphase Nybegynder
03. juni 2003 - 12:50 #11
Roenvig : det virkede ! =) alt der skulel til var det = tegn efter mit minus tegn.

du får point.
Avatar billede roenving Novice
03. juni 2003 - 12:51 #12
Muy bueno '-)
Avatar billede iphase Nybegynder
03. juni 2003 - 12:52 #13
Lindberg.. dit virker også, men roenvig var først med hans addbyvalue svar.
Avatar billede iphase Nybegynder
03. juni 2003 - 12:53 #14
Tak til alle deltagere :)
Avatar billede tipsen Nybegynder
03. juni 2003 - 13:01 #15
iphase: Du kan også bare nøjes med:
<?php
$maxrows=1557;
$changelimit=50;
for($i=1;$i<=10;$i++) {
  printf('[<a href="?page=listjournals&max=%s&min=%s&changelimit=%s">%s</a>]', $maxrows-$changelimit*($i-1), $maxrows-$changelimit*($i), $changelimit, $i);
}
?>
Avatar billede roenving Novice
03. juni 2003 - 13:02 #16
-- takker for points ;~}
Avatar billede jakoba Nybegynder
03. juni 2003 - 13:37 #17
Der er et andet problem med din for løkke. din betingelse er:
                $i >= 0, $page <= 10
når løkken kærer sker der fæ
ølgende:
    $i >= 0
udregnes og giver true eller false.
så ser php ,-tegnet og smider det resultat væk.
så udregnes
    $page <= 10
som også giver true eller false
og det er så dette sidste true eller false der bestemmer om for-løkken skal forstsætte.

Jeg vil gætte på at din hensigt er at begge udtryk skal være true for at løkken fortsætter, det gøres ved at bruge && (AND) pererator istedet for , (liste) operator:
                $i >= 0 && $page <= 10
nu vil løkken kun fortsætte sålænge som BÅDE $i>=0 OG $page<=10 giver true.

mvh JakobA
Avatar billede iphase Nybegynder
03. juni 2003 - 18:01 #18
gode kommentare.. klart noget jeg vil gemme til fremtidig brug.
måske skulle jeg lave en smaling af php ting ligesom sukos, bare nogle ikke så normale ting...
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