Phil: Mysql Ausgabe nach Reihenfolge in drei Spalten

Hallo Zusammen,

Ich habe ein Problem, an dem ich sicher schon 3 Tage festhänge.

Eigentlich ist es ganz einfach. Ich habe Produkte in meiner Datenbank.

Nun sollen jeweils drei Produkte nebeneinander ausgegeben werden, (durch eine Tabelle mit drei Spalten voneinander getrennt) danach geht es eine Zeile runter und das ganze beginnt von vorne, bis alle Produkte ausgegeben sind!

Wie schaffe ich es, die Produkte von Links nach Recht in der richtigen Reihenfolge auszugeben?

Beispiel:

Datenbank

Produkt 1 Preis 1 EUR
Produkt 2 Preis 2 EUR
Produkt 3 Preis 3 EUR
Produkt 4 Preis 4 EUR

Ausgabe

Spalte 1 => Produkt 1, Produkt 4
Spalte 2 => Produkt 2
Spalte 3 => Produkt 3

Ansatz, klappt aber nicht wirklich:

$abfrage = "SELECT num FROM products order by num";
$ergebnis = mysql_query($abfrage);
$menge = mysql_num_rows($ergebnis);
mysql_close($verbindung);

$wertspalte = $menge / 3;
$runden = floor($wertspalte); // abrunden

$start1 = "0";
$end1 = $start1 + $runden;

$start2 = $end1;
$end2 = $start2 + $runden -1;

$start3 = $end2 + 1;
$end3 = $start3 + $runden;

Danke und Gruss Phil

  1. Hi,

    Nun sollen jeweils drei Produkte nebeneinander ausgegeben werden, (durch eine Tabelle mit drei Spalten voneinander getrennt)

    Tabelle? Das klingt mir nicht nach tabellarischen Daten. Vielmehr scheint es sich um eine Liste zu handeln. Setze eine solche ein und formatiere die List-Items entsprechend.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Das ist schon richtig, rein optisch ist es aber schöner, wenn jeweils drei Produkte nebeneinander stehen. Eine Liste ist einfach, aber schaut dann nicht so super aus! Leider! Danke udn Gruss, Phil

      1. Hi,

        Das ist schon richtig, rein optisch ist es aber schöner, wenn jeweils drei Produkte nebeneinander stehen. Eine Liste ist einfach, aber schaut dann nicht so super aus!

        der gewählte HTML-Code hat *** NICHTS *** mit der Darstellung zu tun - hierzu dient nur und ausschließlich CSS. Wenn Du dies noch nicht verinnerlicht hast, liegt die Wahrscheinlichkeit, dass Dein bisheriger Code insgesamt gerade mal Schrottwert hat, nahe 100%. Du solltest die URL Deiner Homepage nennen, damit eventuelle Fehler gefunden und genannt werden können.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. echo $begrüßung;

          der gewählte HTML-Code hat *** NICHTS *** mit der Darstellung zu tun - hierzu dient nur und ausschließlich CSS.

          Die derzeitgen Möglichkeiten der CSS-Implementationen haben oftmals *** NICHTS *** mit der Darstellung zu tun, wie man sie sich vorstellt. Besonders Spalten und Zeilen so schön gleichmäßig wie mit einer Layout-Tabelle hinzubekommen, ist bei mir immer ein ziemlicher K(r)ampf, den manchmal doch eine Tabelle gewinnt.

          echo "$verabschiedung $name";

          1. Tach,

            Die derzeitgen Möglichkeiten der CSS-Implementationen haben oftmals *** NICHTS *** mit der Darstellung zu tun, wie man sie sich vorstellt. Besonders Spalten und Zeilen so schön gleichmäßig wie mit einer Layout-Tabelle hinzubekommen, ist bei mir immer ein ziemlicher K(r)ampf, den manchmal doch eine Tabelle gewinnt.

            in Spalten und Zeilen zu denken führt häufig direkt zur Tabelle, das halte ich jetzt nicht für unlogisch. Dass einen CSS von dieser Denke befreien könnte und damit das Design befreien könnte, vergessen allerdings die meisten.

            mfg
            Woodfighter

  2. echo $begrüßung;

    Nun sollen jeweils drei Produkte nebeneinander ausgegeben werden, (durch eine Tabelle mit drei Spalten voneinander getrennt) danach geht es eine Zeile runter und das ganze beginnt von vorne, bis alle Produkte ausgegeben sind!

    Du könntest beim Abfragen und Ausgeben einen Zähler mitlaufen lassen. Immer wenn dieser durch die Spaltenanzahl ohne Rest teilbar ist (Stichwort modulo), schließt du die eine Zeile ab und beginnst eine neue. Hinzu kommen noch Sonderfälle, wie Auffüllen mit leeren Elementen wenn die Daten zu Ende aber noch Spalten bis zum nächsten Modulo übrig sind.

    echo "$verabschiedung $name";