Hoe op laatste te sorteren?

Status
Niet open voor verdere reacties.
Wiskunde op de late avond valt niet mee, maar als je dit net voor de foreach zet (dus tussen regel 20 en 21 in), moet het werken:
PHP:
//regel 20
		$aantal = count($img)-1;
		if ($aantal > 10) {
			if (($p-2)>0 && ($p+2)<=$aantal) {
				$img = array_slice($img, ($p-2), 5, true);
			} elseif ($p <= 5) {
				$img = array_slice($img, 0, 5, true);
			} elseif ($p >= ($aantal-5)) {
				$img = array_slice($img, ($aantal-5), 5, true);
			} else {
				die("epic fail");
			}
			for ( $n = 0; $n <= $aantal; $n += ceil($aantal/5)) {
				if (!array_key_exists(intval($n),$img)) {
					$img[$n] = "-";
				}
			}
			if (!array_key_exists($aantal,$img)) {
				$img[$aantal] = "-";
			}
			ksort($img);
		}
//regel 21
Ik weet even geen snelle manier om mooi af te ronden op tientallen, dus ik laat de ophoging afhangen van het aantal elementen in de array.
 
Laatst bewerkt:
Bedankt hiervoor Flits!

Het werkt in principe goed. heb nu 20 foto's in de map staan. krijg nu dit te zien:

0 , 4 , 8 , 12 , 16 , 20

echter, de << en >> de verschijnen niet. als je op een van de getallen klikt verschijnt alleen << (links), wanneer je hier dan weer 1x op klikt, verschijnt de pijl naar rechts( >>) pas.

wederom alvast mijn dank!

mvg pepijn
 
hmm hier worden de pijlen gewoon weergegeven (tenzij de huidige pagina de eerste of laatste foto is) dus waarom ze bij jou niet te zien zijn weet ik niet.
 
hmm, hier is de rechter pijl alleen te zien op foto: 19, 15, 11, 7, 3

steeds een verschil van 4, net als de array
 
flits,

Ik heb het script precies zo gebruikt zoals het hier op de site staat. de pijl naar rechts verschijnt alleen om de zoveel foto's. in de geval, met 21 foto's in de map, alleen op foto:

20, 14, 9, 5,
(6, 5, 4)(stappen)

kan je hier iets uit afleiden?

wanneer ik het laatste script tussen regel 20 en 21 uithaal, werken de pijlen wel goed.

alvast bedank!
 
ja, hier: url - removed

(let niet op de foto's, die zijn snel gemaakt om er wat op te kunnen zetten ;)
 
Laatst bewerkt:
hmm, de getallen werken totaal anders zie ik, dit is mijn code:

PHP:
<?php
    if ($handle = opendir("images")) {
        $img = array();
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                $img[] = $file;
            }
        }
        natsort($img);
        $img = array_reverse($img);
        if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET["p"]) && array_key_exists($_GET["p"],$img)) {
            $p = $_GET["p"];
        } else {
            $p = 0;
        }
        echo "<center><img src='images/".$img[$p]."' /><center><br />";
        $opbouw = array();
        if (array_key_exists(($p-1),$img)) {
            $opbouw[] = "<a href='?p=".($p-1)."' class=\"arrow\">&laquo;</a>";
        }
		
		$aantal = count($img)-1;
        if ($aantal > 10) {
            if (($p-2)>0 && ($p+2)<=$aantal) {
                $img = array_slice($img, ($p-2), 5, true);
            } elseif ($p <= 5) {
                $img = array_slice($img, 0, 5, true);
            } elseif ($p >= ($aantal-5)) {
                $img = array_slice($img, ($aantal-5), 5, true);
            } else {
                die("epic fail");
            }
            for ( $n = 0; $n <= $aantal; $n += ceil($aantal/5)) {
                if (!array_key_exists(intval($n),$img)) {
                    $img[$n] = "-";
                }
            }
            if (!array_key_exists($aantal,$img)) {
                $img[$aantal] = "-";
            }
            ksort($img);
        }		
		
        foreach ($img as $id => $plaatje) {
            if ($p == $id) {
                $opbouw[] = $id;
            } else {
                $opbouw[] = "<a href='?p=".$id."'>".$id."</a> ";
            }
        }
        if (array_key_exists(($p+1),$img)) {
            $opbouw[] = "<a href='?p=".($p+1)."' class=\"arrow\">&raquo;</a>";
        }
        echo "<p class=\"photo\">".implode(" | ",$opbouw)."</p>";
    } else {
        echo "kan map niet lezen";
    }
?>

Het enige wat ik heb aangepast is het toevoegen van classes, maar wanneer ik die weg haal blijft het probleem hetzelfde.

alvast bedankt!
 
Ik zie dát het fout gaat, maar niet wát er fout gaat. Er zal niets anders opzitten door zelf de bug op de sporen (zet de arrays en variabelen op het scherm en kijk waar het mis gaat).
 
Ik heb de code 2 maal helemaal gecontroleerd.
de fotos uit de map verwijderd en andere erop gezet, en het probleem blijft hetzelfde, en ik zie ook geen fout in de code.

zou het nog iets anders kunnen zijn? chmod, of wat dan ook?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan