Avatar billede nicholas- Nybegynder
10. januar 2006 - 17:12 Der er 5 kommentarer og
1 løsning

Galleri i php

Hej
Er igang med at lave et galleri, så har nogle spørgsmål, det første er:
Denne her kode virker fint nok til linjeskift, bortset fra i første række, der viser den kun 4 billeder. Jeg har prøvet at printe $newline og har set at løkken starter ved 2. Nogle der kan se hvad fejlen er?

$newline = 0;
$album = $_GET[album];
$album1 = $album.'/thumbnails';

print "Billeder fra ".$album."s fest";

if ($handle = opendir($album1)) {
while (false !== ($file = readdir($handle))) {


    if($newline > 5){
    echo "<tr>";}

   
if ($file != "." && $file != "..") {
echo "<TD align='center'><a target='I2' href='showone.php?a=$_GET[album]&&v=$file'><img  style='border: 1px solid #FFFFFF' src='$album/thumbnails/$file'>". '<br></a></TD>';
print $newline;}




if($newline > 4){
    echo"</tr>";
    $newline = 0;
}
else {
    $newline = $newline+1; }
    }
    }
?>
Avatar billede rednex Nybegynder
10. januar 2006 - 18:56 #1
Du skal kun forhøje $newline når den rent faktisk skriver en linie ud, så flyt $newline = $newline+1; ind i din if($file... løkke.

$newline = $newline+1; kan i øvrigt også skrives som $newline++;
Avatar billede nielle Nybegynder
10. januar 2006 - 19:31 #2
Rednex har fuldstændig ret i hvad det er der er galt med din kode. :^)

Imidlertid er der en del andre ting som også vil give dig problemer - så som at di hverken starter eller afslutter din tabel, eller hvis antallet af billeder ikke lige passer fuldstændigt med 4 i hver trække. Jeg har derfor tilladt mig at skrive den lidt mere om:

$album = $_GET[album];
$album1 = $album.'/thumbnails';

echo "Billeder fra " . $album . "s fest";

if ($handle = opendir($album1))
{
    echo "<table border='1'>";

    $picNo = 0;
    while (false !== ($file = readdir($handle)))
    {
        if ($file != "." && $file != "..")
        {
            if ($picNo % 4 == 0)
            {
                if ($picNo != 0) echo "</tr>";
                echo "<tr>";
            }

            echo "<td align='center'><a target='I2' href='showone.php?a=$_GET[album]&v=$file'><img  style='border: 1px solid #FFFFFF' src='$album/thumbnails/$file'><br></a></td>";

            $picNo++;
        }
    }

    while ($picNo % 4 != 0)
    {
        echo "<td>&nbsp;</td>"
        $picNo++;
    }

    echo "</tr>";

    echo "</table>";
}
?>
Avatar billede nicholas- Nybegynder
10. januar 2006 - 21:39 #3
nice nielle.. virker perfekt, dog magnlede der lige et ; i echo "<td>&nbsp;</td>" .. :)
Avatar billede nielle Nybegynder
10. januar 2006 - 21:46 #4
Damn! ;^)

Som du kan se et optællingen flyttet inden for i 'if ($file != "." && $file != "..")'-delen; Der tælles kun op når det rent faktisk er et billede. Endvidere bruger jeg $picNo++ i stedet for '$picNo = $picNo + 1' (eller $picNo += 1 hvilket også var en mulighed).

Så hvis rednex ønsker proint på denne her, så er det helt fint med mig at vi deler :^)

... og et svar fra mig :^)
Avatar billede rednex Nybegynder
10. januar 2006 - 22:06 #5
nielle > Snup du bare pointene :o) Mit indlæg var bare en hurtig betragtning på vej ud af døren. Din løsning er fin og gennemarbejdet, så du har gjort dig fortjent til dem :o)
Avatar billede nielle Nybegynder
15. januar 2006 - 17:38 #6
Takker for point :^)
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

IT-JOB

Kræftens Bekæmpelse

IT-driftsleder

Metroselskabet I/S

Senior IT Help Desk Specialist

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen