ärger mit <table>

Windhund

Mitglied
Hi

Ich hatte vor mir eine kleine Gallerie zu Programmieren die einfach alle Bilder aus einem vorgegebenem Ordner ausgibt.

Klappt soweit ganz gut nur wollte ich gerne das immer 5 Bilder nebeneinander ausgegeben werden und dan eine neue Reihe angefangen wird und wieder 5 Bilder ausgegeben werden usw...

Das Problem ist jetzt das entweder alle Bilder nebeneinander oder alle Bilder untereinander ausgegeben werden und das ist nicht das was ich will.

PHP:
<?php
$dirname="gallerie_1/";
$spaltenmax=5;

if ($handle = opendir($dirname)) 
{
   echo "<table><tr>";
   $i=0;
   while (false !== ($file = readdir($handle))) 
   {
      if ($file != "." && $file != "..") 
      {
         echo "
	 <td>
	 <img src='$dirname$file' /> $spaltencount
	 </td>";
	 $i ++;
	 if(! $spaltenmax > $i){$i=0; echo "</tr><tr>";}
        }
    }
   echo "</tr></table>";
   closedir($handle);
}
?>

Irgentwo ist da einfach ein ganz blöder fehler drin den ich nicht finde.

Hab schon einen Freund drüber gugen lassen und der hat auch nichts gefunden.

Mit dem ! in der IF in der 18. Zeile kann ich mir Praktisch aussuchen ob ich die Bilder alle in einer Zeile oder in einer Spalte ausgeben möchte...

Ich verzweifle dadran noch, das ist doch eigentlich ein echt simpler code...

Vielen vielen dank für hilfe schonmal im Vorraus
 
Hi

PHP:
$bilder_pro_zeile = 5;
for( $i = 1; $i <= $gesamtanzahlderbilder; $i++ ){
  if( $i%$bilder_pro_zeile == 1 ){
  echo '<tr>';
  }
  //normaler code
  if( $i%$bilder_pro_zeile == 1 ){
    echo '</tr>';
   }
}
 
PHP:
<?php
$dirname="gallerie_1/";
$spaltenmax=5;

if ($handle = opendir($dirname)) 
{
   echo "<table><tr>";
   $i=0;
   while (false !== ($file = readdir($handle))) 
   {
      if ($file != "." && $file != "..") 
      {
        if ($i % $spaltenmax == 0) {
            echo "<tr>";
        }
         echo "
	 <td>
	 <img src='$dirname$file' /> $spaltencount
	 </td>";

	if ($i % $spaltenmax == $spaltenmax - 1) {
	    echo '</tr>';
	}
            	 $i ++;
        }
    }
   echo "</tr></table>";
   closedir($handle);
}
?>


So, hoffe hab jetzt keinen Fehler eingebaut ;)

Denk aber dran, wenn du mal eine Bilderanzahl hast die kein Vielfaches von 5 ist, könnte es zu Darstellungsfehlern kommen.
Hierfür habe ich in meinem Script folgendes vorgesehn:

PHP:
$spaltenbreite = (int)(100/$colsPerRow);

// und die Zellen dann dementsprechend mit dem Attirbut width versehn
// Am Ende muss das Script nur noch überprüfen ob ich kein Vielfaches von 5 habe

	if ($i % $spaltenmax != 0) {
		while ($i++ % $spaltenmax != 0) {
			echo '<td width="' . $spaltenbreite . '%">&nbsp;</td>';
		}	
		echo '</tr>';
	}
 
Zuletzt bearbeitet:
PHP:
<?php
$dirname="gallerie_1/";
$spaltenmax=5;

if ($handle = opendir($dirname)) 
{
   echo "<table><tr>";
   $i=0;
   while (false !== ($file = readdir($handle))) 
   {
      if ($file != "." && $file != "..") 
      {
         echo "
     <td>
     <img src='$dirname$file' /> $spaltencount
     </td>";
     $i ++;
     if($spaltenmax == $i){$i=0; echo "</tr><tr>";}
        }
    }
   echo "</tr></table>";
   closedir($handle);
}
?>

Da waren jede Menge schneller.. :D
 
Zuletzt bearbeitet:
Hey leute,

wie kann ich dieses Script über MySQL nutzen, also das es die bilder nicht direckt aus dem ortner holt sondern die bilder aus der Datenbank abfragt ?


Hoffe das mir da einer weiter helfen kann, oder vielleicht kännt einer so ein fertiges script?
 
Zurück