[php] while probleem met $i [Opgelost]

Gestart doorChristum3 reacties98 weergaven

4 berichten · pagina 1 van 1

Christum

Lid · Topicstarter

Berichten
921
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik ben bezig met een klein script om enkele plaatjes op te halen vanuit een map voor mijn teamleden, maar ik loop nu vast op het volgende probleem.

Ik wil dat er bij elke 3de plaatje een margin:3px -5px 3px 0px; doen. maar wanneer ik mijn script gebruik krijg ik het volgende:
Afbeelding
Op regel 1 bij "$i = 1 - $i = 2 - $i = 3" werkt het goed.
Op regel 2 bij "$i = 5 - $i = 6 - $i = 8" krijgt waarde 6 de margin, dit klopt. maar omdat waarde 4 ontbreekt verspringt alles.

Ik heb op google al naar mogelijke oplossingen gezocht maar helaas heb ik niets kunnen vinden wat dit doet of wat er op lijkt dat dit kan doen. Dus ik heb ook vrijwel niets anders geprobeerd dan dit.

Mijn code is:

[COLOR= #0000BB]<?php
$i[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$handle[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/opendir"]opendir[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]images/upload/nieuws_artikel/[/COLOR][COLOR= #007700]);[/COLOR]
    [URL="http://www.php.net/while"]while[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$file[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/readdir"]readdir[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$handle[/COLOR][COLOR= #007700])){[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]%[/COLOR] [COLOR= #0000BB]3[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
        {[/COLOR]
            [COLOR= #0000BB]$margin[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]3px -5px 3px 0px[/COLOR][COLOR= #007700];
        }[/COLOR][URL="http://www.php.net/else"]else[/URL][COLOR= #007700]{[/COLOR]
            [COLOR= #0000BB]$margin[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]3px 5px 3px 0px[/COLOR][COLOR= #007700];
        }[/COLOR]
    
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$file[/COLOR] [COLOR= #007700]!==[/COLOR] [COLOR= #DD0000].[/COLOR] [COLOR= #007700]&&[/COLOR] [COLOR= #0000BB]$file[/COLOR] [COLOR= #007700]!==[/COLOR] [COLOR= #DD0000]..[/COLOR][COLOR= #007700]){[/COLOR] ?>
        <div class="teampanel-hover" style="float:left; width:223px; margin:[COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$margin[/COLOR][COLOR= #007700];[/COLOR] ?>;">
            $i = [COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700];[/COLOR] ?>
        </div>
    [COLOR= #0000BB]<?php[/COLOR]
    [COLOR= #007700]}[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++;
}[/COLOR]
?>


Hopelijk kan iemand mij hiermee verder helpen.
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Misschien moet je $i weer op 0 zetten
0
Berichten
5.274
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien

Eindhoven, Nederland

Dylan schreef:
Misschien moet je $i weer op 0 zetten
Dat is dus niet nodig.. Gezien de formule die hij gebruikt.

Wat hier fout gaat, is je telt door wanneer er niks word weergegeven (hierdoor word $i te hoog). Zet de $i++; in het if statement. (De 2e regel begint namelijk met $i = 5, wat 4 zou moeten zijn. Daarbij moet op de positie van $i = 8; een 6 staan)
0
Christum

Lid · Topicstarter

Berichten
921
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Wouterr schreef:
Eerdere citaten tonen
Dylan schreef:
Misschien moet je $i weer op 0 zetten
Dat is dus niet nodig.. Gezien de formule die hij gebruikt.

Wat hier fout gaat, is je telt door wanneer er niks word weergegeven (hierdoor word $i te hoog). Zet de $i++; in het if statement. (De 2e regel begint namelijk met $i = 5, wat 4 zou moeten zijn. Daarbij moet op de positie van $i = 8; een 6 staan)
Bedankt, het is gelukt. Misschien voor de mensen die iets soorts gelijks willen maken hier is mijn code die voor mij goed werkt:

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

$i=1;
$handle = opendir(images/upload/nieuws_artikel/);
while($file = readdir($handle)){
if($i % 3 == 0)
{

$margin = 3px -5px 3px 0px;
}
else{
$margin = 3px 5px 3px 0px;
}

if($file != . && $file != ..){ ?>
echo $margin; ?>;">
$i = echo $i; ?>
$i++; }
}

?>
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren