Avatar billede morten_21 Nybegynder
07. september 2008 - 10:06 Der er 5 kommentarer

Tæller i while løkke gone bad

Godmorgen!

Jeg slap det her i nat og tænkte at løsningen ville ligge ligefor når jeg stod op - men desværre.

Koden skal vise alle billedfilerne i en mappe, og vha. $count skal der for hvert 3. billed indsættes et 2 linjeskift. Det lyder simpelt, men jeg har nok stirret mig blind på noget..

Here goes:

<?php
$count = 0;

if ($handle = opendir('lille/'))

{
  while (false !== ($file = readdir($handle)))
      {
      $count = $count + 1;
      if ($file != "." && $file != "..")
            {
            if($count == 3){
                        $insert = ("<br /><br />");
                        $count = 0;
                        } else {
                        $insert = (" "); }
         
          $thelist .= '<a href="stor/'.$file.'">'.$count.'<span class="billed"><img border="0" src="lille/'.$file.'"></span></a>'.$insert;
}
             
}

}
  closedir($handle);
 
?>

<p><?=$thelist?></p>

Lige nu er outputtet ét billede, linjeskift og så 3 billeder pr. linje i resten af løkken. Det ser ud til den indsætter linjeskiftet hver gang tælleren kommer til 0?
Avatar billede riversen Nybegynder
07. september 2008 - 10:21 #1
prøv det her:

<?php
$count = 0;
$insert = '';
$thelist = '';

if($handle = opendir('lille/'))
{
    while($file = readdir($handle))
    {
        $count = $count + 1;
        if ($file != "." && $file != "..")
        {
            if($count % 3 == 0){
            $insert = ("<br /><br />");
        }
        else
            $insert = (" "); }

        $thelist .= '<a href="stor/'.$file.'">'.$count.'<span class="billed"><img border="0" src="lille/'.$file.'"></span></a>'.$insert;
    }
}
closedir($handle);

?>

<p><?=$thelist?></p>
Avatar billede riversen Nybegynder
07. september 2008 - 10:24 #2
pænere formateret...

<?php
$count = 0;
$insert = '';
$thelist = '';

if($handle = opendir('./img/'))
{
    while($file = readdir($handle))
    {
        $count = $count + 1;
        if ($file != "." && $file != "..")
        {
            if($count % 3 == 0 )
                $insert = ("<br /><br />");
            else
                $insert = (" ");
        }
       
        $thelist .= '<a href="stor/'.$file.'">'.$count.'<span class="billed"><img border="0" src="lille/'.$file.'"></span></a>'.$insert;
    }
}
closedir($handle);
?>
Avatar billede hmortensen Nybegynder
07. september 2008 - 10:41 #3
Og så skal optællingen og konkatering nok rykkes inden for if'en.
Avatar billede riversen Nybegynder
07. september 2008 - 10:46 #4
ja, det ville nok være en god idé, selvom det stod fint her.
Avatar billede morten_21 Nybegynder
07. september 2008 - 10:46 #5
hmortensen> Det skulle den nemlig, ellers tæller den . og .. filhenvisningerne med.

Det her endte jeg med:

<?php
$count = 0;
$insert = '';
$thelist = '';

if ($handle = opendir('lille/'))

{
  while (false !== ($file = readdir($handle)))
      {
     
      if ($file != "." && $file != "..")
          {
            $count = $count + 1;
            if($count % 3 == 0 ){
                        $insert = ("<br /><br />");
                        } else {
                        $insert = (" "); }
       
          $thelist .= '<a href="stor/'.$file.'">'.$count.'<span class="billed"><img border="0" src="lille/'.$file.'"></span></a>'.$insert;
}
           
}

}
  closedir($handle);

?>

<p><?=$thelist?></p>

Det må blive halvt til hver. Smid svar, så kommer der point. Mange tak for hjælpen! :-)
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