/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Array, hvorfor virker den ene, men ikke de~
Fra : Jakob Munck


Dato : 12-08-06 10:01

Jeg har et galleri, som har 2 visninger. Den ene viser alle billederne i
galleriet og den anden viser kun et begrænset antal billeder (som
appetitvækker). Den første af disse visninger fungerer fint, men den anden
fungerer ikke, og jeg kan ikke finde ud af, hvad det er som er galt. Se her:

http://www.kadi.dk/galleri7/index.php

Koden til det galleri som virker ok er sådan:
------------------------------------------------------------
$i=0;
$thumbs = 'img_thumb/';
$imgdir = 'img_store/';
$allowed_types = array('jpg','JPG','gif','GIF'); // filtyper der er tilladte
$dimg = opendir($thumbs);
$a_img = array();
while($imgfile = readdir($dimg))
if (in_array(strtolower(substr($imgfile,-3)),$allowed_types)) $a_img[] =
$imgfile;
sort($a_img);
$i=0;
foreach ($a_img as $image) {
$image2 = "Filnavn: "" . $image . """;
echo "<td><a href='vis_stort.php?id=$i'><img src='$thumbs$image'"
.."width='120' height='90' border='0' title='$image2'></a></td>\n";

//antal billeder pr. række:
$a = 5;
if (++$i % $a == 0) echo "<tr></tr>\n";
}
--------------------------------------------------------------------

Koden til det galleri, som IKKE virker (fordi filnavnene ikke vises), er
denne:

--------------------------------------------
<?php
$i=0;
$thumbs = 'img_thumb/';
$imgdir = 'img_store/';
$allowed_types = array('jpg','JPG','gif','GIF');
$dimg = opendir($thumbs);
$image = array();
while($imgfile = readdir($dimg))
if (in_array(strtolower(substr($imgfile,-3)),$allowed_types)) $a_img[] =
$imgfile;
sort($a_img);
$i=0;
for ($nr=0; $nr<min(count($a_img),20); ++$nr) {
echo "<td align='center'><img src='$thumbs$image'" ."width='120' height='90'
border='0' title='$image2'></td>\n";

$a = 2; //antal billeder pr. række
if (++$i % $a == 0) echo "<tr></tr>\n";

if ($nr==3) break; //antallet som skal vises (- 1)
}
?>
-----------------------------------------------------------------

Der er noget galt med arrayet i det andet galleri, men hvad??

Hjælp efterlyses.

v.h.
Jakob



 
 
Martin (12-08-2006)
Kommentar
Fra : Martin


Dato : 12-08-06 13:04

Jakob Munck wrote:

Hej Jakob.

Må jeg ikke starte med at give dig et rigtig godt råd.

Brug en funktion til at hente billederne, så slipper du for at have
stortset den samme kode stående 2 gange.

Den kunne se sådan her ud


function hentbilleder($sti) {
$allowed = array('jpg','gif','png');
// Ingen grund til også at have store navne, da du bruger strtolower
if (is_dir($sti)) {
if ($dh = opendir($sti)) {
while (($file = readdir($dh)) !== false) {
if(in_array(strtolower(substr($file,-3)),$allowed))
$out = $file;
}
closedir($dh);
}
return $out;
}

// Så kan du få billederne ud ved at kalde funktionen med en sti, fx
$billeder = hentbilleder("img/thumb");

Jakob Munck (12-08-2006)
Kommentar
Fra : Jakob Munck


Dato : 12-08-06 16:59

>
> Brug en funktion til at hente billederne, så slipper du for at have
> stortset den samme kode stående 2 gange.
>
> Den kunne se sådan her ud
>
>


Mange tak, men det det hander om - for mig - er at få tingene til at virke.
Det gør det ikke i det begrænsede galleri, og det er godt råd i denne
sammenhæng jeg efterlyser. Æstetiske forbedringer må komme i 2. række.


v.h.
Jakob



Martin (12-08-2006)
Kommentar
Fra : Martin


Dato : 12-08-06 17:28

Jakob Munck wrote:
> Mange tak, men det det hander om - for mig - er at få tingene til at virke.
> Det gør det ikke i det begrænsede galleri, og det er godt råd i denne
> sammenhæng jeg efterlyser. Æstetiske forbedringer må komme i 2. række.

Hvis du bruger en funktion, så for du enten ingen billeder overhovedet,
ellers for du billeder i begge.

Så lav det om til en funktion.

Jakob Munck (12-08-2006)
Kommentar
Fra : Jakob Munck


Dato : 12-08-06 18:58


"Martin" <news@natten-i.dk> skrev i en meddelelse
news:44de0173$0$15783$14726298@news.sunsite.dk...
> Jakob Munck wrote:
>> Mange tak, men det det hander om - for mig - er at få tingene til at
>> virke.
>> Det gør det ikke i det begrænsede galleri, og det er godt råd i denne
>> sammenhæng jeg efterlyser. Æstetiske forbedringer må komme i 2. række.
>
> Hvis du bruger en funktion, så for du enten ingen billeder overhovedet,
> ellers for du billeder i begge.
>
> Så lav det om til en funktion.

Hvis du mener her at have fundet årsagen til at det begrænsede galleri ikke
virker, så tak. Men desværre er jeg ikke klog/dygtig nok til at forstå, hvad
du mener og hvordan dit forslag skal realiseres. Er det muligt at du skriver
den ændring du mener der skal laves ind i den af mig angivne (uduelige)
kode?


v.h.
Jakob



Christoffer \(Guide\~ (12-08-2006)
Kommentar
Fra : Christoffer \(Guide\~


Dato : 12-08-06 19:34


"Jakob Munck" <jm2@webspeed.dk> skrev i en meddelelse
news:44de1635$0$13997$edfadb0f@dread15.news.tele.dk...
>
> "Martin" <news@natten-i.dk> skrev i en meddelelse
> news:44de0173$0$15783$14726298@news.sunsite.dk...
> > Jakob Munck wrote:
> >> Mange tak, men det det hander om - for mig - er at få tingene til at
> >> virke.
> >> Det gør det ikke i det begrænsede galleri, og det er godt råd i denne
> >> sammenhæng jeg efterlyser. Æstetiske forbedringer må komme i 2. række.
> >
> > Hvis du bruger en funktion, så for du enten ingen billeder overhovedet,
> > ellers for du billeder i begge.
> >
> > Så lav det om til en funktion.
>
> Hvis du mener her at have fundet årsagen til at det begrænsede galleri
ikke
> virker, så tak. Men desværre er jeg ikke klog/dygtig nok til at forstå,
hvad
> du mener og hvordan dit forslag skal realiseres. Er det muligt at du
skriver
> den ændring du mener der skal laves ind i den af mig angivne (uduelige)
> kode?
Hvis du samler funktionen der henter billederne til een du inkluderer i
begge scripts kan du hurtigt se hvor fejlen ligger.. finder du ingen
billeder i begge scripts findes fejlen i includet..



Allan Kok (13-08-2006)
Kommentar
Fra : Allan Kok


Dato : 13-08-06 06:36


"Jakob Munck" <jm2@webspeed.dk> skrev i en meddelelse
news:44dd9857$0$13984$edfadb0f@dread15.news.tele.dk...
> Jeg har et galleri, som har 2 visninger. Den ene viser alle billederne i
> galleriet og den anden viser kun et begrænset antal billeder (som
> appetitvækker). Den første af disse visninger fungerer fint, men den anden
> fungerer ikke, og jeg kan ikke finde ud af, hvad det er som er galt. Se
> her:
>
> http://www.kadi.dk/galleri7/index.php
>
> Koden til det galleri som virker ok er sådan:
> ------------------------------------------------------------
> $i=0;
> $thumbs = 'img_thumb/';
> $imgdir = 'img_store/';
> $allowed_types = array('jpg','JPG','gif','GIF'); // filtyper der er
> tilladte
> $dimg = opendir($thumbs);
> $a_img = array();
Her hedder arrayet $a_img!


> while($imgfile = readdir($dimg))
> if (in_array(strtolower(substr($imgfile,-3)),$allowed_types)) $a_img[] =
> $imgfile;
> sort($a_img);
> $i=0;
> foreach ($a_img as $image) {
> $image2 = "Filnavn: &quot;" . $image . "&quot;";
> echo "<td><a href='vis_stort.php?id=$i'><img src='$thumbs$image'"
> ."width='120' height='90' border='0' title='$image2'></a></td>\n";
>
> //antal billeder pr. række:
> $a = 5;
> if (++$i % $a == 0) echo "<tr></tr>\n";
> }
> --------------------------------------------------------------------
>
> Koden til det galleri, som IKKE virker (fordi filnavnene ikke vises), er
> denne:
>
> --------------------------------------------
> <?php
> $i=0;
> $thumbs = 'img_thumb/';
> $imgdir = 'img_store/';
> $allowed_types = array('jpg','JPG','gif','GIF');
> $dimg = opendir($thumbs);
> $image = array();
Her hedder arrayet $image, men senere i scriptet tror du det hedder $a_img!


> while($imgfile = readdir($dimg))
> if (in_array(strtolower(substr($imgfile,-3)),$allowed_types)) $a_img[] =
> $imgfile;
> sort($a_img);
> $i=0;
> for ($nr=0; $nr<min(count($a_img),20); ++$nr) {
> echo "<td align='center'><img src='$thumbs$image'" ."width='120'
> height='90'
Her skulle du have brugt $a_img[$nr] istedet for $image!

> border='0' title='$image2'></td>\n";
>
> $a = 2; //antal billeder pr. række
> if (++$i % $a == 0) echo "<tr></tr>\n";
>
> if ($nr==3) break; //antallet som skal vises (- 1)
> }
> ?>
> -----------------------------------------------------------------
>
> Der er noget galt med arrayet i det andet galleri, men hvad??
>

Sammen blanding variabel navne er aldrig en godt ting, også kan jeg kun
tilslutte mig at bruge en funktion, når det er det samme der sker!

mvh
Allan



Jakob Munck (13-08-2006)
Kommentar
Fra : Jakob Munck


Dato : 13-08-06 14:29

>> <?php
>> $i=0;
>> $thumbs = 'img_thumb/';
>> $imgdir = 'img_store/';
>> $allowed_types = array('jpg','JPG','gif','GIF');
>> $dimg = opendir($thumbs);
>> $image = array();
> Her hedder arrayet $image, men senere i scriptet tror du det hedder
> $a_img!
>
>
>> while($imgfile = readdir($dimg))
>> if (in_array(strtolower(substr($imgfile,-3)),$allowed_types)) $a_img[] =
>> $imgfile;
>> sort($a_img);
>> $i=0;
>> for ($nr=0; $nr<min(count($a_img),20); ++$nr) {
>> echo "<td align='center'><img src='$thumbs$image'" ."width='120'
>> height='90'
> Her skulle du have brugt $a_img[$nr] istedet for $image!
>
>> border='0' title='$image2'></td>\n";
>>

Tusind tak for hjælpen, nu virker det.

v.h.
Jakob



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste