Tabellenwerte in einer 3*X Matrix ausgeben

mtruels

Grünschnabel
Hallo User von tutorials.de,
nachdem ihr mir beim letzten Mal schon helfen konntet, hoffe ich das es diesmal auch der Fall sein wird.
Ich sitze schon seit 9 Uhr an diesem Problem und da die letzte Stunde nurnoch aus Google und rumprobieren besteht, wende ich mich mal konkret an euch.

Sachverhalt:
Es gibt 4 Abfragedaten aus der Datenbank (ID, Bild-URL, Name und ein Datum) und diese wurden bis jetzt schön untereinander ausgeben.

Da ich aber möglichst viele dieser Daten auf eine Seite packen will, also ohne großes Blättern oder scrollen, sollen sie nun zu Zweier- oder Dreierpaaren angeordnet werden.

Falls etwas unklar ist habe ich dies mal skizziert: Hier ist dies zu finden
Hellgrau =Hintergrund, Grau=Äussere Tabellen, Rot=die eigentlichen Tabellen

Hier ist mein Ausgangspunkt:
(Ich denke es macht wenig Sinn meine Versuche mit $count und Whileschleifen zu posten, zwar konnte ich damit die Matrix erstellen, dafür waren die Daten redundant)

PHP:
while ($usera = mysql_fetch_array($user, MYSQL_ASSOC)){	

	printf('	
<table width="200" border="1">
      <tr>
          	<td height="118"><a href="mem_profil.php?member=%s"><img src="%s" width="124" height="105" /></a></td>
      </tr>
      <tr>
        	 <td height="23">Name: %s</td>
      </tr>
      <tr>
       	   <td height="23">Freunde seit: %s</td>
      </tr>
</table>',$usera["UserID"],$usera["UserPic"], $usera["username"], $usera["frdate"]);  
		
														}

Ich hoffe das ihr mir weiterhelfen könnt:)

Mit freundlichen Grüßen
Mark
 
Also entweder machst du das ganze mit <LI> und lässt es automatisch umbrechen, oder Fest mit einer Tabelle. Was dann in etwa so aussäh:

PHP:
<?
$pro_zeile = 2;


$i = 0;
echo '<table>';
while ($usera = mysql_fetch_array($user, MYSQL_ASSOC)){ 
    
    if($i % $pro_zeile == 0) echo '<tr>';   // Zeilenanfang   
    else          echo '<td><img src="dein rautenzwischenbild.jpg"></td>'; // Zwischen den Zellen 

    printf('    
    <td>
    <table width="200" border="1">
          <tr>
                  <td height="118"><a href="mem_profil.php?member=%s"><img src="%s" width="124" height="105" /></a></td>
          </tr>
          <tr>
                 <td height="23">Name: %s</td>
          </tr>
          <tr>
                  <td height="23">Freunde seit: %s</td>
          </tr>
    </table>
</td>',$usera["UserID"],$usera["UserPic"], $usera["username"], $usera["frdate"]);  
    if($i % $pro_zeile == $pro_zeile - 1) echo '</tr>';
    $i++;
}  

// Restliche TD`s schließen, falls nötig
if($i % $pro_zeile != 0){
    for(;$i % $pro_zeile != 0; $i++) echo '<td>&nbsp;</td>';
    echo '</tr>';
}

echo '</table>';
?>

Der Hauptaugenmerk liegt auf dem Modulo Opperator %, damit kann man den Divisionsrest sich zurückgeben lassen und somit sehr einfach die Zeilen errechnen.
 
Wooow! Vielen Dank, das hat mir echt geholfen.

Nun aber den Quelltext verinnerlichen, damit ich das nächste mal das selbst hinbekomme :D
p.s. "dein rautenzwischenbild.jpg" gibt es nicht, das war auf dem BIld nur eine angedeutete Trennlinie *g*

MfG
Mark
pps. VIELEN DANK!
 
Zurück