Zweispaltenlayout aus MySQL generieren

Metha

Mitglied
Hallo

Ich möchte ein Zweispaltenlayout was so aussehen soll:

HTML:
<table>
  </tr>
    <td>Inhalt 1</td>
    <td>Inhalt 2</td>
  </tr>
</table>

mit Daten aus einer MySQL Datenbank generieren. Wenn ich die Daten einfach mir einer normalen MySQL-Abfrage hole und dann in eine while Schleife packe, dann werden die Daten ja nur untereinander erstellt. Ich möche aber, das in der linken Zeile der erste Datensatz und in der rechten Zeile der zweite Datensatz erstellt wird. Und die nachfolgenden Datensäte dann jeweil immer erst links und dann rechts rein kommen.
Es soll dann ca. so wie hier sein: http://www.webmaster-resource.de/tricks/html.php

Kann mir da jemand einen Denkanstoß zur Lösung des Problems geben?
 
Hmm dann z.B. so, das ich für die rechte Zeile einen Query nehme, der alle ungraden id's nimmer und nach DESC sortiert und für die rechte dann einen, der die geraden id's nimmt.
 
Gib es einfach als ungeordnete Liste aus und formatiere es mit folgendem CSS:
Code:
ul.two-column-list {
	list-style:			none;
	margin:				0 auto;
	padding:			0;
}
ul.two-column-list li {
	float:				left;
	width:				48%;
	margin:				0 1% 1em 0;
	padding:			0;
	border:				1px solid #999;
}
 
Hört sich ineressant an, kannst du dein Vorschlag noch ein bischen ausführen ? Dein Beispiel versteht ich nicht ganz. (kann aber css)
 
Im eigentlichen Sinne ist es ja bloß ein Darstellungsproblem, welches du beschrieben hast. Und im Bezug auf HTML sind eigentlich Formatierungssprachen wie CSS für die Gestaltung einer Webseite zuständig. Deshalb hab ich mir ein passendes Beispiel gesucht und es den Anforderungen entsprechend angepasst.
 
Achso, das Problem leigt aber darin, dass die Datensätze in Templates gelesen werden müssen, damit mir ein zweispaltiges Layout zur Darstellung überhaupt zur Verfügung steht. Mit CSS habe ich ja nicht die Möglichkeit Datensätze zu positionieren, sondern nur das Layout (Template), in das der Datensatz gelesen wird, optisch zu verändern.

Somit muss ich ja mit einer MySQL-Abfrage ein Vorauswahl treffen, in der ich dann angebe, welche Datensätze ich in der linken Spalte und welche in der rechten Spalte haben möchte.

MfG Micha
 
Zuletzt bearbeitet:
Steh ich total auf dem Schlauch oder hab ich irgendwas übersehen? :confused:
PHP:
$i = 0;
echo '<table><tr><td>';
while ($array = mysql_fetch_assoc($query)) {
    echo $array['daten1'] . '</td><td>' . $array['daten2'];
    if ($i % 2 == 1) {
        echo '</td></tr><tr><td>';
    }
    $i++;
}
echo '</td></tr></table>';
 
Somit muss ich ja mit einer MySQL-Abfrage ein Vorauswahl treffen, in der ich dann angebe, welche Datensätze ich in der linken Spalte und welche in der rechten Spalte haben möchte.
Eben nicht. Dass von mir erwähnte Beipiel ist eben nicht auf so fixe Daten angewiesen, sondern passt sich automatisch an.
Weiterhin könntest du später auch noch einfacher anpassen, falls du vielleicht doch nur eine Spalte, oder vielleicht auch doch mehr Spalten haben möchtest. Denn dann müsstest du nur das CSS anpassen.
 
Habe es jetzt mal nach deinem Beispiel gemacht, und muss sagen, dass wohl wirklich die einfachste und beste Variante ist. Nur ein kleines kosmetisches Problem habe ich da noch. Ist es möglich ein z.B. Zweispaltenlayout auch zentriert ausgeben zu lassen?
Ich habe es versucht, in dem ich einen sozusagen Masterdiv um das komplette Layout gelegt habe, doch das funktioniert nicht.
Andere Möglichkeiten sehe ich nicht, ihr ?
 
Zurück