Bilder aus Ordner in eine Select Box einlesen

Dustin84

Erfahrenes Mitglied
Hallo,

ich habe ein Problem mit meinen Newsletter (Clanletter).
Der Newsletter kam erst später zur Website hinzu, so dass er nun eine eigene Datenbank hat.

Im Adminbereich der Website habe ich die Möglichkeit, mehrere Bilder auf den Server (Datenbank 1) zu laden und dort abzulegen im Ordner "web_bilder".

Der Newsletter hat einen eigene Adminbereich (Datenbank 2)
Hier seht ihr den Adminbereich, um einen Newsletter zu verfassen

Die Bilder, die ich in den Ordner "web_bilder" hochgeladen habe, sollen nun ausgelesen werden und in die SelectBox (Bild1,Bild2,Bild3 etc.) geladen werden.
Zudem müsste auch noch der Name des Bildes übermittelt werden.

Der Redakteur kann dann später Bilder von den SelectBoxen auswählen, die dann im Newsletter angezeigt werden.

Hier nochmal der Code einer Selectbox:
PHP:
<b>Bild 1:</b><br>
	<? echo $email_bild1; ?>
	<select name="bild1">
		<option value="">leer</option>
		<option value="/bilder_newsletter/bild1.jpg">/bilder_newsletter/bild1.jpg</option>
		<option value="/bilder_newsletter/bild2.jpg">/bilder_newsletter/bild2.jpg</option>
		<option value="/bilder_newsletter/bild3.jpg">/bilder_newsletter/bild3.jpg</option>
		<option value="/bilder_newsletter/bild4.jpg">/bilder_newsletter/bild4.jpg</option>
		<option value="/bilder_newsletter/bild5.jpg">/bilder_newsletter/bild5.jpg</option>
		<option value="/bilder_newsletter/bild6.jpg">/bilder_newsletter/bild6.jpg</option>
		<option value="/bilder_newsletter/bild7.jpg">/bilder_newsletter/bild7.jpg</option>
		<option value="/bilder_newsletter/bild8.jpg">/bilder_newsletter/bild8.jpg</option>
		<option value="/bilder_newsletter/bild9.jpg">/bilder_newsletter/bild9.jpg</option>
	</select> <a href="#">ansehen</a><br><br>

Wie würde ein Lösungsansatz aussehen ?

Gruß
D.
 
Hi,

was genau meinst du mit Name des Bildes?
Ich könnte dir nur zeigen, wie du an alle Dateinamen kommst.

Es sei denn, die Bilder stehen alle in einer Datenbank, wo man diesen einen Namen gibt.
 
Hi,

was genau meinst du mit Name des Bildes?
Ich könnte dir nur zeigen, wie du an alle Dateinamen kommst.

Es sei denn, die Bilder stehen alle in einer Datenbank, wo man diesen einen Namen gibt.

Mit Name meine ich, dass halt die Bildernamen in der Selectbox angezeigt werden,z.B Vase, Auto, Baum oder was weiss ich ;-) Primär würde ich gerne erstmal die Bilder irgendwie in die Selectbox laden lassen.
 
PHP:
$path = './picture/';
$pictures = array();
$d = dir( $path );
    while( $entry = $d->read() )
    {
        if( $entry != '.' && $entry != '..' )
        {
            if( !is_dir( $path.$entry ) )
            {
                array_push(
                          $pictures,
                          array(
                               $entry
                               )
                          );
            }
        }
    }
    $d->close();
    
    $pictureCount = count( $pictures );
    echo '<select>';
    for( $i = 0; $i < $pictureCount; $i++ )
    {
        echo '<option value="' .$pictures[$i][0]. '">' .$pictures[$i][0]. '</option>';
    }
    echo '</select>';


Namen für die Bilder müssen aber irgendwo herkommen, zum Beispiel aus einer Datenbank oder so.
 
cool, danke. Kannst mir evtl. noch sagen, was folgendes genau bedeutet:

PHP:
while( $entry = $d->read() )

PHP:
 if( $entry != '.' && $entry != '..' )  // was bdeutetn die '.'  und '..'

PHP:
  if( !is_dir( $path.$entry ) )
 
cool, danke. Kannst mir evtl. noch sagen, was folgendes genau bedeutet:

PHP:
while( $entry = $d->read() )

PHP:
 if( $entry != '.' && $entry != '..' )  // was bdeutetn die '.'  und '..'

PHP:
  if( !is_dir( $path.$entry ) )

read ist hier einfach eine Methode der Klasse dir. Und funktioniert ähnlich wie die Funktion readdir().

Wenn du mal in einem FTP Programm schaust, da ist oben immer der Ordner "..", mit dem man eine Ebene runter kommt. Und eben das soll hier vermieden werden, da wir ja nur Dateinamen wollen.

Zuletzt wird noch gepüft, ob es sich um ein Verzeichnis handelt (is_dir()), wir wollen ja nur die Dateinamen haben.
 
Huhu,

also ich habe nun folgenden Code, der soweit auch geht:

PHP:
<b>Bild 1:</b><br>
	 <?php
	 $path = ($_SERVER['DOCUMENT_ROOT']."/bilder_gross/"); // Verzeichnis Bilder
	 $pictures = array(); // Container für Ketten gleichartiger Variablen, hier also Bildcontainer
     $d = dir( $path );
   	 while( $entry = $d->read() ) // DB Auslesen
   	 {
   	     if( $entry != '.' && $entry != '..' ) // Ebenen
    	    {
   	         if( !is_dir( $path.$entry ) ) // Verzeichnis Prüfung
    	        {
      	          array_push( // fügt die übergebenen Variablen, also pictures, an das Ende von array
    	                      $pictures,
        	                  array(
        	                       $entry
         	                      )
        	                  );
       	        }
      	    }
  	 }
	 
   	$d->close(); // Datenbank schliessen
	echo $email_bild1; 
	?>
	<select name="bild1">
		<?
			$pictureCount = count( $pictures ); // Bilder im Ordner zählen
			for( $i = 0; $i < $pictureCount; $i++ ) { // Schleife, start bei Objekt 0 und Bilder zählen mit $pictureCount
    			echo '<option value="' .$pictures[$i][0]. '">' .$pictures[$i][0]. '</option>';
			}
		?>
	</select> 
	<a href="#">ansehen</a><br><br>

Im select Feld stehen nun zumindest schon einmal die Namen der vorhandenen Bilder. Wie schaffe ich es, dass er die ausgewählten Bilder mit dem Newsletter versendet ?
 
Name aus DB abfragen

Hallo,

ich versuche mir gerade einen Link zusammen zu basteln. Dazu brauche ich die Bildernamen in meinen Bilderordner.

Ist dies so ungefähr möglich, wie ich es unten probiert habe:

PHP:
<?php
   $bildname = ("SELECT Filename FROM tblFile $textdb","Filename",$DB_WE);
?>
<a href="/bilder_gross/<?php echo $bildname ; ?>">ansehen</a><br><br>

Gruß
D.
 
Zurück