Avatar billede nak-m Nybegynder
16. juli 2003 - 00:08 Der er 17 kommentarer og
1 løsning

problemer med while loop m.m.

Jeg har en loop:

$i=0;
while (så længe sandt og bla bla...) {
  $i++;   
  ...blabla
  if(($i+1)%3 == 0) {
    echo "<br>";
  }         
}

burde den så ikke lave linjeskift hver tredje linje?
hvis viste kode ikke kan virke hvordan laver man det så sådan at den laver linjeskift hver tredje whileloop?
Avatar billede googolplex Novice
16. juli 2003 - 00:19 #1
$i=0;
while (så længe sandt og bla bla...) {
  $i++;   
  ...blabla
  if(($i)%3 == 0) {
    echo "<br>";
  }         
}

Fjern +1, det virker hos mig :)
Avatar billede googolplex Novice
16. juli 2003 - 00:21 #2
$i=0;
while (så længe sandt og bla bla...) {
  $i++;   
  ...blabla
  if($i%3 == 0) {
    echo "<br>";
  }         
}

List pænere :)
Avatar billede detox Nybegynder
16. juli 2003 - 00:21 #3
Ja, det burde virke. Alternativt:
if(!fmod($i, 3)) {
    echo "<br>";
}
Avatar billede googolplex Novice
16. juli 2003 - 00:23 #4
Du kan se det her:

http://www.ladefoged-roenne.dk/test.php

Koden:

<?php
$i=0;
while ($i < 100) {
  $i++;   
  echo "I er " . $i. " | ";
  if($i%3 == 0) {
    echo "<br>";
  }         
}
?>
Avatar billede nak-m Nybegynder
16. juli 2003 - 00:24 #5
det bliver kun værre af at fjerne +1'et ved mig ... nu ser det sådan ud:

|
|||
|||
|||
||
|||

før var problemet bare dette:

|||
|||
|||
|||
||
|

hvad går der galt?
Avatar billede googolplex Novice
16. juli 2003 - 00:26 #6
Loopen er korrekt, du kan selv tjekke mit link.

Kan vi se hele din kode ?
Avatar billede nak-m Nybegynder
16. juli 2003 - 00:31 #7
ja her:

$i=0;
while ($file = readdir($handle)) {
    $i++;   
    if ($file != '.' && $file != '..' && !preg_match("/_stor/i", $file) && preg_match("/.jpg/i", $file)) {
      $filestor = str_replace(".jpg", "_stor.jpg", $file);       
      print ("<a href=\"".$GLOBALS["path"].$filestor."\" target=\"_blank\"><img src=\"".$GLOBALS["path"].$file."\"></a>");
    }
    if(($i+1)%3 == 0) {
      echo "<br>";
    }         
  }

Jeg bruger det til et lille galleri ;)
Avatar billede nak-m Nybegynder
16. juli 2003 - 00:34 #8
jeg har det fra denne snip:

if (sizeof($fileArray)) {
        sort($fileArray);
        for ($i=0;$i<count($fileArray);$i++) {
            list($folder, $file) = $fileArray[$i];
            $tmpfilename = substr($file, 0, strlen($file)-$extlen);
            echo "blabla";
if ( ($i+1)%3 == 0 ) echo "<br>";
        }
    }
Avatar billede googolplex Novice
16. juli 2003 - 00:34 #9
Har du et link, så vi kan se det i funktion ?
Avatar billede googolplex Novice
16. juli 2003 - 00:36 #10
Ja, men +1 SKAL væk, de er jo kun med fordi FOR-loopen lægger en til $i EFTER den har kørt, du lægger den til  FØR.
Avatar billede nak-m Nybegynder
16. juli 2003 - 00:39 #11
ok, men det ændrer jo ikke på at koden ikke virker hos mig :(

prøver lige at ligge det op!
Avatar billede nak-m Nybegynder
16. juli 2003 - 01:03 #12
http://212.10.45.97/

kan det have noget at gøre med at den thumbs.db fil er der?

(jeg kan ikke se den og slette den)
Avatar billede nak-m Nybegynder
16. juli 2003 - 01:10 #13
i er vel ikke gået i seng?
Avatar billede ahv Nybegynder
16. juli 2003 - 01:11 #14
Ellers så prøv med denne workaround ->

$sum = 3; // Antal ved siden af hinanden
$sumcount = 1;
if (sizeof($fileArray)) {
        sort($fileArray);
        for ($i=0;$i<count($fileArray);$i++) {
            list($folder, $file) = $fileArray[$i];
            $tmpfilename = substr($file, 0, strlen($file)-$extlen);
            echo "blabla";
        if ($sumcount == $sum) {
        $sumcount = 0;
        echo "<br>";
        }
        $sumcount++;
        }
    }
Avatar billede nak-m Nybegynder
16. juli 2003 - 01:21 #15
kan det godt implementeres direkte i min kode?
Avatar billede ahv Nybegynder
16. juli 2003 - 01:23 #16
Ja, istedet for ->

if (sizeof($fileArray)) {
        sort($fileArray);
        for ($i=0;$i<count($fileArray);$i++) {
            list($folder, $file) = $fileArray[$i];
            $tmpfilename = substr($file, 0, strlen($file)-$extlen);
            echo "blabla";
if ( ($i+1)%3 == 0 ) echo "<br>";
        }
    }

Så ->

$sum = 3; // Antal ved siden af hinanden
$sumcount = 1;
if (sizeof($fileArray)) {
        sort($fileArray);
        for ($i=0;$i<count($fileArray);$i++) {
            list($folder, $file) = $fileArray[$i];
            $tmpfilename = substr($file, 0, strlen($file)-$extlen);
            echo "blabla";
        if ($sumcount == $sum) {
        $sumcount = 0;
        echo "<br>";
        }
        $sumcount++;
        }
    }
Avatar billede sostack Nybegynder
16. juli 2003 - 11:49 #17
Sådan her virker det hos mig:
$i=0;
while ($file = readdir($handle)) {
       
    if ($file != '.' && $file != '..' && !preg_match("/_stor/i", $file) && preg_match("/.jpg/i", $file)) {
      $filestor = str_replace(".jpg", "_stor.jpg", $file);       
      print ("<a href=\"".$GLOBALS["path"].$filestor."\" target=\"_blank\"><img src=\"".$GLOBALS["path"].$file."\"></a>");
    $i++;
    }
    if(($i)%3 == 0) {
      echo "<br>";
      $i=0;
    }         
  }
closedir($handle);
?>

//sostack
Avatar billede nak-m Nybegynder
16. juli 2003 - 13:12 #18
tak sostack!
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