Problem mit automatisierter Tabelle

metalhead

Grünschnabel
Hi leute, ich hab hier ein kleines Problem, bei dem ich nicht weiterkomme.
Ich frage aus der Datenbank den Namen und die URL ein Bildes ab und will diese in einer Tabelle mit drei Spalten darstellen. D. h. pro Zeile sollen drei Namen und Bilder erscheinen.

Mein Problem ist nun folgendes ... und zwar werden nicht alle Datensätze abgefragt. Die letzten drei fehlen.

Vielleicht kann mir da einer weiterhelfen.

Hier noch der Code:
PHP:
	 <table border="0" width="560" cellpadding="0" cellspacing="0">

	  <?php
	  
	    $tabelle = 'member';
        $gesamt = anzahl($tabelle); //Bestimmen der Anzahl der in der DB vorhandenen Datensätze
        $zeilengesamt = ceil(($gesamt/3));
	  	
		for($zeile=1; $zeile<=$zeilengesamt+1; $zeile++){
		
		  echo "<tr>";
		  	  
	      $offset = ($zeile-1)*3;
	  
	      $query = 'SELECT * FROM member ORDER BY name ASC LIMIT '. $offset .', 3';
          $result = mysql_query($query);
	      if(!$result)
          {
             die("Die Daten konnten nicht aus der Tabelle ausgelesen werden:<br>" . mysql_error());
          }

		  $anzahl = mysql_num_rows($result);
		  
		  if( ($trennwert=$gesamt-$zeile*3)<=3) { $wert=$trennwert; }
		  else { $wert=3; }
		  
		  for($i=1; $i<=$wert; $i++){
		  	$ergebnis = mysql_fetch_assoc($result);
	  
	  ?>
	  
	    <td align="center" width="156">
		  <font color="Gold"><b><?php echo $ergebnis['name'];?></b></font><br>
		  <img src="<?php 
		  				if($ergebnis['imgurl']=="") { echo 'images/na.jpg'; }
					    else                        { echo $ergebnis['imgurl']; }
					?>">
		</td>
		
	  <?php
	  		}
			
	  	  echo "</tr>";
		  echo "<tr>";
		  echo "<td colspan='5'>&nbsp;</td>";
		  echo "</tr>";

		  }
	  
	  ?>

Der wichtige Teil ist der hier:
PHP:
         for($zeile=1; $zeile<=$zeilengesamt+1; $zeile++){
		
        $offset = ($zeile-1)*3;
	  
	$query = 'SELECT * FROM member ORDER BY name ASC LIMIT '. $offset .', 3';
 
Zuletzt bearbeitet:
Es geht auch wesentlich einfacher:
PHP:
<?php

	$tabelle = 'member';
	$query = '
		SELECT
		        `name`,
		        `imgurl`
		  FROM
		        `member`
		  ORDER BY
		        `name` ASC
		';
	$result = mysql_query($query)
		or die(mysql_error());

	$i = 0; $cpr = 3;
	echo '<table>';
	while( $row = mysql_fetch_assoc($result) ) {
		if( $i % $cpr == 0 ) {
			echo '<tr>';
		}
		echo '<td>'.$row['name'].' <img src="'.($row['imgurl']=='' ? 'images/na.jpg' : $row['imgurl']).'"></td>';
		if( $i % $cpr == $cpr - 1 ) {
			echo '</tr>';
		}
		$i++;
	}
	echo '</table>';

?>
Alternativ empfehle ich dir die einzelnen Elemente als Liste auszuzeichnen und anschließend mit CSS zu formatieren.
 
Zurück