Bilder ausgeben

Maxm123

Mitglied
Ich will mir eine kleine Bildergalerie bauen und brauche eure Hilfe. Die SuFu hab ich genutzt...hat aber nicht geholfen. Also ich möchte das so machen das ich eine pics.php hab und wenn ich jetzt auf meiner homepage bin dann öffnet er erst die pics.html --> darauf befindet sich eine formular mit dem album namen. wenn ich jetzt z.b. weihnachten anklicke dann soll die pics.php geöffnet werden......so bis hier hier hin alles nicht schwer......jetzt soll die pics.php aber alle Bilder aus dem Ordner Weihnachten nehmen (durch das Formular soll der Ordnername an pics.php gegeben werden) und anzeigen. Und zwar in einer Tabelle die 3 Spalten breit ist und so viel Zeilen hat wie sie braucht. Also bei 9 Bilder halt 3 Sp. + 3Zeilen und bei 11 Bilder 3SP. + 4 Zeilen. Und in den <img> Code von jedem Bild soll noch class="pic" rein.

Könntet ihr mir bitte bei der Umsetztung helfen?
 
Versuch mal ein bisschen mehr Form in deinen Beitrag zu bringen, es liest sich nicht sehr einfach :)

Ok jetzt zu deinem Problem.
Ich habe das ganze bei mir so gelöst:
Der User wählt eine Galerie an , öffnet diese mit dem klick auf den Link bzw bei dir der Auswahl der Galerie im "Formular". Der Link bzw das absenden des Formulars könnte dann bei dir folgende Url ausgeben: pics.php?id=1. Hier steht id=1 für z.b. Weihnachten, weil dies deine erste Galerie ist.

Jetzt schaut die pics.php einfach welche Datein im Ordner 1 oder bzw welcher Ordner der ID 1 zugeordnet sind und gibt diese aus.
Du kannst es z.B. so machen:
Die mysql-Datenbank hat eine Tabelle mit dem Namen Galerie in welche dann gespeichert ist,
ID der Galerie, Name der Galerie, Ordner der Galerie, Anzahl der Bilder der Galerie und was du sonst noch so willst.
Der erste Teil der pics.php könnte dann so aussehn:
PHP:
$galerieID = $_GET['ID'];

$query  = "SELECT id, name, count_im, dire_im
                   FROM galerie
                   WHERE id = $galerieID";
pics.php holt sich also die Variable ID aus der URL und speichert diese nur um einfacher damit umzugehen in die Variable $galerieID.
Jetzt wird mittels eines sql querys der Datensatz gesucht welcher mit der URL-Variablen übereinstimmt.

Jetzt das Ganze noch auszugeben sollte kein Problem mehr darstellen, denk ich mal.
Wenn du es dir nochmal in der Praxis anschauen willst, so wie ich es gelöst habe, dann schau mal bei http://www.tsvgambach.de vorbei. Ich hab das ganze Script noch ein wenig anderst aufgebaut aber von der Idee her ist es so wie oben beschrieben.
 
Also, meines ermessens würde ich garnet 2 Datein verwenden.
ich würde sowohl die abfrage mit dem Ordnern und die Bilder ausgabe in einer Datei zb. die "pics.php" packen.

dan machste halt sonne abfrage
POST:
PHP:
<?
if (empty($_POST['Bilder_Ordner'])){
    //Formular mit den Ornern
}else{
    //Bilder ausgabe
}
?>
oder GET:
PHP:
<?
if (empty($_GET['Bilder_Ordner'])){
    //Formular mit den Ornern
}else{
    //Bilder ausgabe
}
?>

mit den Spallten ist dann halt nur eine Rechnungssache!
 
das hört sich ja schon mal ganz gut an...ich habe gerade meinen Rechner neu gemacht. Wenn er wieder startklar ist und ich wieder Zeit habe für meine Homepage versuche ich mal aus den Schnipsel etwas zu machen :)

Aber Danke schon mal :)
 
So habe jetzt mal einen alten Code verwendet den ich fürher schon mal für ein Formularelement verwendet hab.
Ich komme nur an einer Steller nicht weiter.
PHP:
<?php
$ordner = $_POST['ordner'];
$array = array();
$d = dir("http://img.dj-max-mueller.de/gallerie/".$ordner."/thumb");
while (false !== ($entry = $d->read())) {
   $array[] = $entry;
}
$d->close();

$files = array();
foreach($array as $check){
   if(preg_match("/(\.jpg)$/i",$check)){
      $files[] = $check;
   }
}

if(!empty($files)){
   echo '<table class="gallerietb">';
   foreach($files as $file){
      echo ' 
	<tr>
    <td class="gallerietd">&nbsp;</td>
  </tr>';
   }
   echo '</table>';
}
else{
   echo 'Keine Bilder gefunden.';
}
?>

Hier
PHP:
if(!empty($files)){
   echo '<table class="gallerietb">';
   foreach($files as $file){
      echo ' 
	<tr>
    <td class="gallerietd">&nbsp;</td>
  </tr>';
   }
   echo '</table>';

Wie sage ich PHP dass er 3 Bilder in eine Zeile macht und dann wieder eine neue beginnt?
 
gibt mehrere Möglichkeiten:

eine wäre z.B.:
PHP:
if(!empty($files)){ 
   echo '<table class="gallerietb">';
   $i == 0; 
   foreach($files as $file){ 
      if($i = $num) {
      echo '<tr>';
      }
      echo '<td class="gallerietd">&nbsp;</td>'; 
      if($i = $num) {
      echo '</tr>';
      $i == 0;
      } else {
      $i++;
      }
   } 
   echo '</table>';

so oder so ähnlich ;) wobei $num die Anzahl der Bilder in einer Reihe angibt
 
Hi

Dein Script sollte ein ungewünschtes Resultat geben. So sollte es besser sein:
PHP:
$num = 4; #4reihen
if(!empty($files)){ 
   echo '<table class="gallerietb">';
   $i = 1;
   foreach($files as $file){ 
      if($i % $num == 0) {
      echo '<tr>';
      }
      echo '<td class="gallerietd">&nbsp;</td>'; 
      if($i % $num == 0) {
      echo '</tr>';
      } 
      $i++;
   } 
   echo '</table>';  
}

mfg Nord!
 
folgendes Problem:
Code:
Warning: dir(http://img.dj-max-mueller.de/gallerie/london/thumb): failed to open dir: not implemented in /srv/www/web2/html/max-mueller/site/showpics.php on line 5

Fatal error: Call to a member function on a non-object in /srv/www/web2/html/max-mueller/site/showpics.php on line 6

http://www.dj-max-mueller.de/site/pics.php
http://www.dj-max-mueller.de/site/showpics.php

was ist in der showpics falsch?

showpics.php
PHP:
<?php
$num = 3;
$ordner = $_POST['ordner'];
$array = array();
$d = dir("http://img.dj-max-mueller.de/gallerie/".$ordner."/thumb");
while (false !== ($entry = $d->read())) {
   $array[] = $entry;
}
$d->close();

$files = array();
foreach($array as $check){
   if(preg_match("/(\.jpg)$/i",$check)){
      $files[] = $check;
   }
}

if(!empty($files)){ 
   echo '<table class="gallerietb">';
   $i == 0; 
   foreach($files as $file){ 
      if($i = $num) {
      echo '<tr>';
      }
      echo '<td ><img src="http://img.dj-max-mueller.de/gallerie/'.$ordner.'/thumb/'.$file.'</td>'; 
      if($i = $num) {
      echo '</tr>';
      $i == 0;
      } else {
      $i++;
      }
   } 
   echo '</table>';
}
else{
   echo 'Keine Bilder gefunden.';
}
?>
 
Der Thumb exestiert nicht und deswegen geht read() nicht.
Guck mal ob die Ordner Post dingens richtig ist, vielleicht is sie ja falsch übergeben und ist daher leer.

MFG
Mark Paspirgilis
 
Zurück