Hilfe bei Tabellenaufbau

funnyzocker

Erfahrenes Mitglied
Hallo.
Für mein Projekt möchte ich News so aufbauen wie im Bild zu sehen ist.
Ich bekomme es zwar ohne Probleme hin die Ausgabe nebeneinander oder untereinander zu bekommen.
Wie bekomme ich es hin das die einzelnen News in einer Tabelle sind?Dann insgesamt 2 tabellen nebeneinander und dann die nächste reihe

*Edit
Habe vergessen meinen ersten Ansatz zu posten.
PHP:
$anzahl = 2;
$show = 'SELECT id, datum, autor, k_text, l_text FROM news';
$aus = mysql_query($show);
$x = 0; $proZeile = $anzahl;
while($row = mysql_fetch_array($aus))
{
    if($x % $proZeile == 0 && $x > 0)
    {
        $news .= '</tr><tr>';
    }
    $news .= "<table width=100%>
          <td><h2>News vom $row[1] geschrieben von $row[2]</td>
      </tr>
      <tr>
          <td><h2>$row[3]</td>
      </tr>
      <tr>
          <td><h2><a href=index.php?do=start&aktion=voll_news&id=$row[0]>Komplette News lesen</a></td></tr></table>";
    $x++;
}  

}
 

Anhänge

  • news.JPG
    news.JPG
    11,2 KB · Aufrufe: 19
Zuletzt bearbeitet:
Entweder in dem du die Tabellen verschachtelst:

HTML:
<table>
 <tr>
    <td># TABLE 1 #</td>
    <td># TABLE 2 #</td>
 </tr>
 <tr>
    <td># TABLE 3 #</td>
    <td># TABLE 4 #</td>
 </tr>
</table>

Was allerdings viel Code erzeugt und codetechnisch gesehen auch nicht gerade schön ist.

Schöner wäre das Ganze mit <div> zu lösen und dem Attribut float.

HTML:
<div style="float: left;"># TABLE 1 #</div>
<div style="float: left;"># TABLE 2 #</div>
<br>
<div style="float: left;"># TABLE 3 #</div>
<div style="float: left;"># TABLE 4 #</div>
<br style="clear: both; />

Ich bin nicht so ganz der perfekte HTML/CSS Könner, aber es sollte so funktionieren.
Ist übrigens eher eine HTML/CSS Frage und nicht wirklich PHP relevant.
 
Mit HTML wäre das ganze kein Problem. Nur muss ich ja auch die Tabelle mit dem Inhalt füllen. Und muss PHP dazu bekommen 2 Tabellen nebeneinander und dann die nächste Reihe
 
Mit HTML wäre das ganze kein Problem. Nur muss ich ja auch die Tabelle mit dem Inhalt füllen. Und muss PHP dazu bekommen 2 Tabellen nebeneinander und dann die nächste Reihe

Versuchs mal so, hab's nicht getestet.

PHP:
<table>
<?php
 $anzahl = 2; 
 $show = 'SELECT id, datum, autor, k_text, l_text FROM news'; 
 $aus = mysql_query($show); 
 $i = 1;
 while($row = mysql_fetch_array($aus)) 
 {
  $id = $row['id'];
  $datum = $row['datum'];
  $autor = $row['autor'];
  $k_text = $row['k_text'];
  $l_text = $row['l_text'];
 
  if($i == 1)
  {
  echo '<tr>';
  }
 
  echo '<td>'.$k_text.'<td>';
 
  if($i == $anzahl)
  {
   echo '</tr>';
   $i = 1;
  }
 
  $i++;
 }   
 
 if($i < $anzahl)
 {
  $rest = $anzahl - $i;
  for($i = 1;$i<=$anzahl;$i++)
  {
   echo '<td>&nbsp;</td>';
  }
  echo '</tr>';
 }
?>
</table>
 
Habe es gerade mal ausprobiert. Musste es erst noch bissel umbauen damit es alles ausgibt und nicht nur den k_text.
Leider zeigt er es nicht richtig an. Klappt also nicht
 
Habe es gerade mal ausprobiert. Musste es erst noch bissel umbauen damit es alles ausgibt und nicht nur den k_text.
Leider zeigt er es nicht richtig an. Klappt also nicht

so jetzt sollte es funktionieren...

PHP:
<table border="1">
<?php
 mysql_connect('localhost','root','');
 mysql_select_db('test');
 $anzahl = 2; 
 $show = 'SELECT id, datum, autor, k_text, l_text FROM news'; 
 $aus = mysql_query($show); 
 $i = 1;
 while($row = mysql_fetch_array($aus)) 
 {
  $id = $row['id'];
  $datum = $row['datum'];
  $autor = $row['autor'];
  $k_text = $row['k_text'];
  $l_text = $row['l_text'];
 
  if($i == 1)
  {
  echo '<tr>';
  }
 
  echo '<td>'.$k_text.'</td>';
 
  if($i == $anzahl)
  {
   echo '</tr>';
   $i = 1;
  }
  else
  {
  $i++;
  }
 }
?>
</table>
 
Zurück