golovan Skrevet 7. juni 2005 Del Skrevet 7. juni 2005 Hei. Har et problem med et knotete php-skript. Håper noen kan hjelpe... Jeg skal hente bilder fra ei mappe, og legge dem ut i en tabell som klikkbare lenker. Problemet er at det ligger 60 bilder i mappa, men slik skriptet er nå, hentes bare 50 ut. Skriptet ser slik ut: <?php //dette skriptet henter bilder fra ei mappe og skriver ut i htmltabell echo "\n"; echo'<table border="0" width="100%" align="left">'."\n".'<tr>'. "\n"; $mappe = "bilders"; $bildeFetch = opendir($mappe); //Henter ut fra mappe, lager thumbs og skriver ut i tabell med fem celler per rad while(false!==($sjekk = readdir($bildeFetch))){ if($i<5){ if($sjekk !='..' && $sjekk !='.' && $sjekk !='' && $sjekk !='Thumbs.db'){ echo '<td align="center" valign="middle">'."\n".'<a href="'.$mappe.'/'.$sjekk.'"title="Klikk for stor versjon">'."\n".'<img src="'.$mappe.'/'.$sjekk.'" width="50" border="0"></a></td>'. "\n"; $i++; } } else{ echo '</tr>'. "\n".'<tr>'. "\n"; $i=0; } } echo'</tr>'. "\n".'</table>'. "\n"; ?> Jeg veit at det er en dårlig løsning å lage thumbnailer av bildene slik dette skriptet gjør, men det skal jeg fikse seinere (skal lage thumbnails ved upload, og hente opp disse med lenke til storversjon, tenkte jeg). Bildene som ligger ute nå er dessuten bittesmå i utgangspunktet (mobilbilder). Ser noen noe som er totalt feil her? Lenke til kommentar
svatt Skrevet 7. juni 2005 Del Skrevet 7. juni 2005 (endret) Slik det er nå så hopper skriptet over hver femte fil. Prøv heller: while(false!==($sjekk = readdir($bildeFetch))){ if($sjekk !='..' && $sjekk !='.' && $sjekk !='' && $sjekk !='Thumbs.db'){ if($i == 5){ echo '</tr>'. "\n".'<tr>'. "\n"; $i=0; } echo '<td align="center" valign="middle">'."\n".'<a href="'.$mappe.'/'.$sjekk.'"title="Klikk for stor versjon">'."\n".'<img src="'.$mappe.'/'.$sjekk.'" width="50" border="0"></a></td>'. "\n"; $i++; } } Endret 7. juni 2005 av svatt Lenke til kommentar
golovan Skrevet 7. juni 2005 Forfatter Del Skrevet 7. juni 2005 Takk som bare det. Jeg trodde det hoppa over hvert femte bilde, men ante ikke hvordan jeg skulle fikse det. Men, nå funker det! jess Lenke til kommentar
golovan Skrevet 8. juni 2005 Forfatter Del Skrevet 8. juni 2005 Men når noe fungerer får man jo lyst til å flikke litt mer på det slik at det fungerer enda bedre... Ser at slik skriptet er nå så skriver det ikke ut tabellen helt html-riktig. Hvis en rad har mindre enn fem bilder, blir det for få celler i forhold til de andre radene. Jeg prøvde å sette en teller som telte nedover og bruke denne til å bestemme colspan, men det funka ikke slik jeg gjorde det. Finnes det en lur måte å få colspan til å bli automatisk riktig på? Lenke til kommentar
svatt Skrevet 8. juni 2005 Del Skrevet 8. juni 2005 (endret) <?php //dette skriptet henter bilder fra ei mappe og skriver ut i htmltabell echo "\n"; echo'<table border="0" width="100%" align="left">'."\n"; $mappe = "bilders"; $bildeFetch = opendir($mappe); //Henter ut fra mappe, lager thumbs og skriver ut i tabell med fem celler per rad $perRad = 5; $i = 0; while(false!==($sjekk = readdir($bildeFetch))){ if($sjekk !='..' && $sjekk !='.' && $sjekk !='' && $sjekk !='Thumbs.db'){ if($i == 0){ echo '<tr>'. "\n"; $i=$perRad; } echo '<td align="center" valign="middle">'."\n".'<a href="'.$mappe.'/'.$sjekk.'"title="Klikk for stor versjon">'."\n".'<img src="'.$mappe.'/'.$sjekk.'" width="50" border="0"></a></td>'. "\n"; $i--; if($i == 0){ echo '</tr>'. "\n"; } } } if ($i > 0) { echo '<td colspan="'.$i.'"></td></tr>'."\n"; } echo '</table>'. "\n"; Nå teller $i ned fra 5 til 0. Hver gang $i er 0, så startes en ny rad. Dersom raden ikke er full, så blir det "ryddet opp" etter while-løkken. Jeg har ikke testet det, men det burde virke. Endret 8. juni 2005 av svatt Lenke til kommentar
golovan Skrevet 8. juni 2005 Forfatter Del Skrevet 8. juni 2005 Takk for hjelpa Svatt, men det funker ikke dessverre. Det er akkurat samme resultat som før pluss at det skrives ut en <td> med colspan, men ingen bilder nederst. Tror du du kan se på koden en gang til? Jeg har sett meg totalt blind på det iallfall Lenke til kommentar
svatt Skrevet 8. juni 2005 Del Skrevet 8. juni 2005 Jeg har testet det, og her virker det slik jeg mener det skal. Dersom den siste raden har mindre enn fem bilder, så blir det laget en ekstra (tom) celle med colspan lik antall bilder som "mangler" i den siste raden (dvs. cellen fyller opp de tomme plassene i raden). Dersom den siste raden er full, så blir ikke den ekstra cellen (med colspan) laget. Hvis du mener at det siste bildet skal ligge i en celle med colspan, så må skriptet skrives litt om. Men hvis det siste bildet ligger i en slik celle med colspan så vil det ikke være alignet med bildene over. Lenke til kommentar
golovan Skrevet 8. juni 2005 Forfatter Del Skrevet 8. juni 2005 Du har selvfølgelig totalt rett. Det som frika meg ut var at jeg hadde glemt Takk som bare det! Og sorry for at jeg pesa deg til å se på det igjen... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå