Avatar billede pehory Nybegynder
07. januar 2005 - 22:06 Der er 15 kommentarer og
1 løsning

Hjælp til billedgalleri

Hej

1) Jeg har bakset nedestående script sammen. Der er bare det galt at jeg får alle billeder 3 gange. Jeg kan sagtens se hvorfor men ved ikke lige hvordan jeg skal fixe det.
2 )Desuden ville jeg gerne have lavet en funktion så jeg kan angive hvor mange billeder jeg ønsker pr. side.
Der er 100 point til hver 'opgave'.

Det skal nok lige siges at når denne side loades ind er der angivet en id i filnavnet (?id=x) så den virker på flere mapper.

  <table><tr>
    <th colspan="3">Jaaa</th>
    </tr>
<?php
$id = $_GET['id'];
$types = array("jpg", "jpeg");
$dir = "billeder/$id/";

if ($handle = opendir($dir)) {
  while (false !== ($file = readdir($handle))) {
      if (in_array(substr($file, strrpos($file, ".")+1), $types)) {
          echo "<tr>
    <td><a href=\"showpic.php?id=$id&amp;name=".$file."\"><img src=\"".$dir.$file."\" border=\"0\"></a></td>
    <td><a href=\"showpic.php?id=$id&amp;name=".$file."\"><img src=\"".$dir.$file."\" border=\"0\"></a></td>
    <td><a href=\"showpic.php?id=$id&amp;name=".$file."\"><img src=\"".$dir.$file."\" border=\"0\"></a></td></tr>";
      }
  }
  closedir($handle);
}
?></table>

Mvh Peter
Avatar billede moocher Nybegynder
07. januar 2005 - 23:51 #1
Du vil have det så der kommer 3 billeder per række? ellers kan du jo bare slette to af de tre linier ;)

Jeg ville putte en tæller ind som tæller til 3 og hver gang den når 3 laver den en ny række
Avatar billede pehory Nybegynder
07. januar 2005 - 23:54 #2
Vil have 3 billeder pr. række. Men som det er nu kommer det samme billede ind. Sådan skal det jo ikke være.
Avatar billede moocher Nybegynder
07. januar 2005 - 23:56 #3
Noget i denne stil

$i = 1
echo "<tr>";
while (false !== ($file = readdir($handle))) {
 
      if (in_array(substr($file, strrpos($file, ".")+1), $types)) {
           
            echo "<td><a href=\"showpic.php?id=$id&amp;name=".$file."\"><img src=\"".$dir.$file."\" border=\"0\"></a></td>";
           
            if ($i == 3) {
            $i = 0;
            echo "</tr>";
            echo "<tr>";
            }
           
            $i = $i + 1;
        }
  }
echo "</tr>";
Avatar billede pehory Nybegynder
08. januar 2005 - 00:06 #4
Kunne jeg få dig til at fortælle mig præcis hvor det skal sættes ind og hvad jeg skal fjerne fra det omrindelige?
Avatar billede moocher Nybegynder
08. januar 2005 - 00:08 #5
<table><tr>
    <th colspan="3">Jaaa</th>
    </tr>
<?php
$id = $_GET['id'];
$types = array("jpg", "jpeg");
$dir = "billeder/$id/";

if ($handle = opendir($dir)) {
 
<---- indsæt her --->




$i = 1
echo "<tr>";
while (false !== ($file = readdir($handle))) {

      if (in_array(substr($file, strrpos($file, ".")+1), $types)) {
         
            echo "<td><a href=\"showpic.php?id=$id&amp;name=".$file."\"><img src=\"".$dir.$file."\" border=\"0\"></a></td>";
         
            if ($i == 3) {
            $i = 0;
            echo "</tr>";
            echo "<tr>";
            }
         
            $i = $i + 1;
        }
  }
echo "</tr>";



<--- til her --->

  closedir($handle);
}
?></table>
Avatar billede pehory Nybegynder
08. januar 2005 - 00:19 #6
Får desværre fejl på det: Parse error: syntax error, unexpected T_ECHO på linien med echo "<tr>";
Avatar billede moocher Nybegynder
08. januar 2005 - 00:24 #7
dem er der 2 af
Avatar billede moocher Nybegynder
08. januar 2005 - 00:24 #8
Har du fjernet de to "pile"... det skal du
Avatar billede moocher Nybegynder
08. januar 2005 - 00:26 #9
<table><tr>
    <th colspan="3">Jaaa</th>
    </tr>
<?php
$id = $_GET['id'];
$types = array("jpg", "jpeg");
$dir = "billeder/$id/";

if ($handle = opendir($dir)) {



$i = 1;
echo "<tr>";
while (false !== ($file = readdir($handle))) {

      if (in_array(substr($file, strrpos($file, ".")+1), $types)) {
       
            echo "<td><a href=\"showpic.php?id=$id&amp;name=".$file."\"><img src=\"".$dir.$file."\" border=\"0\"></a></td>";
       
            if ($i == 3) {
            $i = 0;
            echo "</tr>";
            echo "<tr>";
            }
       
            $i = $i + 1;
        }
  }
echo "</tr>";




  closedir($handle);
}
?></table>

Fandt den selv. jeg havde glemt et ; efter 1 i linien over
Avatar billede pehory Nybegynder
08. januar 2005 - 00:30 #10
Du skal  have tak for hjælpen og have point hvis du ønsker. Du kan vel ikke hjælpe mig med den anden ting også?
2 )Desuden ville jeg gerne have lavet en funktion så jeg kan angive hvor mange billeder jeg ønsker pr. side.
Avatar billede moocher Nybegynder
08. januar 2005 - 00:32 #11
Her starter vi lige med svaret. Ser lige på det andet imens ;)
Avatar billede moocher Nybegynder
08. januar 2005 - 01:03 #12
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table><tr>
    <th colspan="3">Jaaa</th>
    </tr>
<?php
$id = $_GET['id'];
$types = array("jpg", "jpeg");
$dir = "billeder/$id/";
$antal = 15;
$start = $_REQUEST["start"];
$billede_nr = 0;
$total_antal = 0;


// Der må være en hurtigere måde at tælle filerne på men det er lige midlertidig hvad jeg kan klare
if ($handle = opendir($dir)) {

while (false !== ($file = readdir($handle))) {
      if (in_array(substr($file, strrpos($file, ".")+1), $types)) {
            $total = $total + 1; 
        }
    }
  closedir($handle);
}



if ($handle = opendir($dir)) {



$i = 1;
echo "<tr>";
while (false !== ($file = readdir($handle))) {

      if ((in_array(substr($file, strrpos($file, ".")+1), $types))) {
            $billede_nr = $billede_nr + 1;
            if (($billede_nr <= $start + $antal) AND ($billede_nr > $start)) {
            echo "<td><img width=100 height=100 src=\"".$dir.$file."\" border=\"0\"></td>";
           
            if ($i == 3) {
            $i = 0;
            echo "</tr>";
            echo "<tr>";
            }
     
            $i = $i + 1;
           
            }
        }
  }
echo "</tr>";




  closedir($handle);
}
?></table>

<?php
for($j = 0; $j < $total; $j=$j+15) {
$side = $j / 15 + 1;
echo "<a href='Galleri.php?start=".$j."'>Side ".$side."</a> ";
}
?>
</body>
</html>
Avatar billede pehory Nybegynder
09. januar 2005 - 15:34 #13
Jeg takker for hjælpen. Med lidt små rettelser virkede det helt perfekt! (du er kommet til at sætte 15 ind i stedet for $antal nogle steder)
Et lille tillægsspørgsmål jeg virkelig håber at få besvaret: hvordan kan jeg få udskrevet antal billeder i en mappe?
Avatar billede moocher Nybegynder
09. januar 2005 - 16:22 #14
DEn har du skam allerede, den ligger i $total ;)
Avatar billede pehory Nybegynder
09. januar 2005 - 16:27 #15
Jeg takker mange gange for hjælpen!
Avatar billede moocher Nybegynder
12. januar 2005 - 06:16 #16
Glad for at jeg kunne hjælpe
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