Logikverständnis: Bildergalerie

Hallo zusammen,

habe mal meine alte Bildergalerie ausgegraben und will diese nen bisschen verbesser mit DB_Anbindung usw.

Das hier ist nun die Aufbreitung wie die Daten aus der DB kommen:
PHP:
if(mysql_num_rows($resultset)) {
		echo "<table cellspacing='10' cellpadding='5'>";
		// Gehe die einzelnen Datensätze durch
		while ($row = mysql_fetch_object($resultset)) {
			
				echo "<tr>";
				
					echo "<td id='picture'>
							<a href='".PICTURE_PATH.$row->Hash.$row->Dateityp."' title='".$row->Titel."' class='thickbox'>
								<img src='".$row->Thumbnail_Pfad."' border='0' />
							".$row->Titel."</a></td>";
							// 
				echo  "</tr>";
			
		}
		echo"</table>";	
		// inc/create_pic.php?dir=".$_GET['dir']."&id=".($n*$spalten+$i+$_GET['seite']*$PicsPerPage)."&thumb
	}

Mein Problem ist jedoch folgendes:
Die Bilder werden unter einander an geordnet. Ich möchte diese aber in einer Tabelle nebeneinander haben, jenachdem wieviele Spalten und Reihen ich sehen möchte. Dies kann ich in der Config mit den Konstanten "COLS_PER_PAGE" und "ROWS_PER_PAGE" einstellen.

Jedoch werden diese mir nur untereinander angeziegt. Auch "herumspielen" mit Rechnungen brachte keinen Erfolg.

Vielleicht denk ich auch nur etwas in die andere Richtung. Aber wenn mir jemand dabei helfen könnte, wäre ich ihm sehr dankbar :).
 
Wenn du in jedem Durchlauf der Schleife eine Table Row (<tr>) aufmachst, brauchst du dich nicht wundern, wenn alle Zellen untereinander angezeigt werden.
 
Ja, schau dir an was du in der Schleife machst.^^
Du erstellst bei jedem Schleifendurchlauf eine Reihe mit einer Zelle.

Wenn du die <tr>-Tags außerhalb der Schleife setzt, erstellt er dir alle Zellen nebeneinander in einer Reihe.
Du müsstest also noch ein Kriterium einbauen, das überprüft wird und nach x Zellen eine neue Zeile einfügt. ;)
 
Hallo,

die bisherigen Antworten sollten bei deinem Problem schon helfen. Ich hab' so eine ähnliche Bildergalerie, wie du sie dir wahrscheinlich vorstellst, schon mal geschrieben (http://eweinert.ew.funpic.de).
Wenn du möchtest, kann ich dir gerne mal den Quellcode davon zukommen lassen. Vielleicht hilft er dir weiter.

Näheres in 'ner PM.

Gruß,
lBr1anl
 
Halo zusammen.
Danke, eure Beiträge haben mir geholfen :)
Habe mal ein wenig gegrübelt und es nun wie folgt geschafft:

PHP:
while ($row = mysql_fetch_object($resultset)) {
			
			if(ALLOW_RATING == true){
				if($row->Bewertung = 0){
					$bewertung = "<img src='images/icons/medal_silver_add.png ' alt='Bewertung hinzufügen' title='Bewertung hinzufügen'>";
				}
				elseif($row->Bewertung < 3){
					$bewertung = "<img src='images/icons/medal_bronze_2.png' alt='Bronze (".$row->Bewertung.")' title='Bronze (".$row->Bewertung.")'>";
				}
				elseif($row->Bewertung < 6){
					$bewertung = "<img src='images/icons/medal_silver_2.png' alt='Silber (".$row->Bewertung.")' title='Silber (".$row->Bewertung.")'>";
				}
				elseif($row->Bewertung <= 10){
					$bewertung = "<img src='images/icons/medal_gold_2.png' alt='Gold (".$row->Bewertung.")' title='Gold (".$row->Bewertung.")'>";
				}
				$bewertung_Ausgabe = $bewertung." (".$row->Bewertung_Anz.")"; 
			}
			else{
				$bewertung_Ausgabe = " ";
			}
			
			/* Zähler +1, da wir einen Datensatz ausgegeben haben */
			$i += 1; 
			$aktuelleReihe = ceil($i/$spalten);
			if($i<=$PicsPerPage){
				echo "	<td id='PictureOverview'>
							<a href='".PICTURE_PATH.$row->Hash.$row->Dateityp."' title='".$row->Titel."' class='thickbox' >
								<img src='".THUMBNAIL_PATH.$row->Hash.$row->Dateityp."' border='0' alt='".$row->Name."' />
							</a>
							<table width='100%'>
								<tr>
									<td align='left'>".$row->Titel."</td>
									<td align='right'>".$bewertung_Ausgabe."</td>
								</tr>
							</table>
						</td>";
				
				
				// ".$row->Titel." - ".$row->Datum."
			}
					
			/* Prüfen ob wir das maximale Anzahl der Spalten erreicht haben. Wenn ja brech die Zeile um. */
			if($i>=($spalten*$aktuelleReihe)){
				echo "</tr>";
			}
		}

		echo "</table>";	
		echo "</div>";

Danke an alle :)
@ lBr1anl: Habe dir eine PN hinterlassen.
 
Zurück
Oben