Avatar billede simon_gs_13 Nybegynder
06. august 2004 - 13:31 Der er 14 kommentarer og
1 løsning

problem med en while løkke

jeg har et problem med en galleri side jeg har lavet til FDF Randers 2. Mit problem er at der i mit galleri script er en while løkke som ikke vil køre og dermed får jeg ikke resten af scriptet kørt færdigt.

jeg for flg fejl. Notice: Undefined offset: 7 in c:\programmer\apache group\apache\htdocs\rds2\foto40.php on line 54 ( linie er: while($i < $pics && $billeder[$i] != "") { )

Scriptet er som følger:

<?php

# Indstillinger

$mappe = "image/foto4/"; // Mappen med billeder


$pr_side = 20; // Antallet af billeder pr. side

$height = 100;

$width = 150;



if (isset($_GET['offset'])) {

    $offset = $_GET['offset'];

} else {

    $offset = 0;

}

$pics = $offset+$pr_side;

$i = $offset;



# Laver et array med billederne, så vi senere kan sortere

$handle = opendir($mappe);

while (($fil = readdir($handle)) !== false) {

if ($fil !=".." && $fil != ".." && !is_dir($mappe."/".$fil)) {     
 
        $billeder[] = $fil;

    } 

}

closedir($handle);



# Udskriver billederne

sort($billeder);

while($i < $pics && $billeder[$i] != "") {  # det er denne linie der er problemet

    echo "<a href=\"$mappe/$billeder[$i]\"><img src=\"$mappe/$billeder[$i]\" border=\"0\" width=\"$width\" height=\"$height\"></a> ";

    $i++;

}

?>
Avatar billede nikolajdu Nybegynder
06. august 2004 - 13:33 #1
$pics = $offset.$pr_side;

Man plusser med .
Avatar billede nikolajdu Nybegynder
06. august 2004 - 13:34 #2
Glemt det - jeg er en hest.
Avatar billede detox Nybegynder
06. august 2004 - 13:38 #3
while($i < $pics && $billeder[$i] != "") {  # det er denne linie der er problemet

    echo "<a href=\"$mappe/$billeder[$i]\"><img src=\"$mappe/$billeder[$i]\" border=\"0\" width=\"$width\" height=\"$height\"></a> ";

    $i++;

}

Kunne ændres til:

foreach ($billeder as $billede) {
    if ($billede != '') {
    echo "<a href=\"$mappe/$billede\"><img src=\"$mappe/$billede\" border=\"0\" width=\"$width\" height=\"$height\"></a> ";
    }
}
Avatar billede detox Nybegynder
06. august 2004 - 13:38 #4
Hmm, glem osse det, så ikke du hev alle billederne ud :o(
Avatar billede erikjacobsen Ekspert
06. august 2004 - 13:41 #5
while($i < $pics && $i<count($billeder) && $billeder[$i] != "") {
Avatar billede erikjacobsen Ekspert
06. august 2004 - 13:42 #6
formentlig kan du bare nøjes med
while($i < $pics && $i<count($billeder)) {
Avatar billede simon_gs_13 Nybegynder
06. august 2004 - 13:54 #7
nej erik, det virker ikke der mangler stadig at blive udskrevet den del af scriptet som lave næste og forrige teksten.
Avatar billede erikjacobsen Ekspert
06. august 2004 - 14:14 #8
"...næste og forrige teksten" - det er der da ikke i det du viser?
Avatar billede simon_gs_13 Nybegynder
06. august 2004 - 14:26 #9
nej erik det forstår jeg squ godt nu du siger det. jeg have kopiert dette galleriscript fra en af mine andre sider, uden at tænke på at det var til to delt script. så nu hvor jeg jeg har sat dem sammen virker det. det må være varme som gør man ikke kan huske.

Så på bundlinien er der ikke noget problem mere.
Avatar billede erikjacobsen Ekspert
06. august 2004 - 14:35 #10
;) - ingen point til mig, tak, jeg samler slet ikke på dem.
Avatar billede miqe Nybegynder
07. august 2004 - 23:38 #11
Prøv at ændre
while($i < $pics && $billeder[$i] != "")
til
while(($i < $pics) && ($billeder[$i] != ""))

Nogle operatorer går forud for andre og dermed er disse 2 while løkker forskellige.
En tabel om forrang: http://dk.php.net/manual/en/language.operators.php#language.operators.precedence
Avatar billede miqe Nybegynder
07. august 2004 - 23:39 #12
Ovenstående er et svar!
Avatar billede erikjacobsen Ekspert
08. august 2004 - 08:46 #13
Nej, der er ingen forskel overhovedet på de 2 while løkker, hvilket nævnte link netop beviser.
Avatar billede detox Nybegynder
08. august 2004 - 09:54 #14
I øvrigt er problemet jo løst iflg: 06/08-2004 14:26:58. Der mangler bare at blive lukket.
Avatar billede simon_gs_13 Nybegynder
02. september 2004 - 20:52 #15
lukker
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