Query kommasepariert

robitobi

Mitglied
Moin,moin,
weiss nicht genau ob hier oder DB-Forum?:offtopic:
Ich versuchs mal hier.
Würde gerne in meinem Shop Variantenpreise zusammenführen.
Bsp:
Artikeltabelle mit u.a. 2 Feldern Grösse + Preis:

small 79,00
medium 79,00
large 79,00
xlarge 99,00
xxlarge 99,00
3xlarge 99,00

Das steht jetzt so bei mir in einer Tabelle auf der Artikelseite. Bei einigen Artikeln mit vielen Grössen wird das schnell unübersichtlich, deshalb besser wär:

small, medium, large 79,00
xlarge, xxlarge, 3xlarge 99,00

Wenn ich die query wie oben mache, ist sie ja in einem Array, kann ich das so auslesen, das meine gewünschte Formatierung dabei rauskommt?
Hab überhaupt keine Idee.
Kann jemand helfen?
Danke



:
 
Die Abfrage könnte wie folgt aussehen:
Code:
SELECT
        `groesse`,
        `preis`,
  GROUP BY
        `preis`,
  ORDER BY
        `preis` DESC
 
[Ja, schon,
nur dann gibts nur 2 Zeilen:

large 79,00
3xlarge 99,00

Man könnte da natürlich ein "Bis Grösse: " vorsetzen, aber so ganz toll ...?
Weiss nicht.
Trotzdem: Danke.


Nee, das geht nicht, die angezeigte Grösse ist irgendeine in der Aufzählung, nicht die Erste, dass man "Von Grösse:" schreiben könnte und auch nicht die Letzte.
Schade, noch ne Idee?
 
Zuletzt bearbeitet:
Keiner mehr ne Idee?
Hab natürlich gelesen, wie ich eine Aufzälung machen kann.
Komme aber nicht klar damit, dass im Preisfeld nur 1 Preis stehen soll, wie gesagt:
S,L,M,XL 79,00
XXL, 3XXL 99,00

Hilfe! ;)
 
Hau doch einfahc das Ergbenis in eine while Schleife :

PHP:
//sql abfrage
$result = mysql_query($sql); //wenn die Select abfrage in der Variablen $sql ist
while($row = mysql_fetch_assoc($result){
 echo $row['Groesse'];
 echo  $row['Preis']
 
Hau doch einfahc das Ergbenis in eine while Schleife :

Ja, das mach ich, dann kommt dies raus:

small 79,00
medium 79,00
large 79,00
xlarge 99,00
xxlarge 99,00
3xlarge 99,00

Ich will 's aber so haben:

small, medium, large 79,00
xlarge, xxlarge 3xlarge 99,00

Noch ne Idee?
 
PHP:
$arr = Array();
while ($row = mysql_fetch_object($sql)) $arr[$row->preis][] = $row->groesse;

while (list ($key, $val) = each($arr)) {
  $echo = "";
  while (list ($inkey, $inval) = each($val)) {
    $echo .= $inval.', ';
  }
  echo substr($echo, 0, -2).' '.$key.'<br>';
}

Sollte funktionieren.

Hier meine Testdatei: http://www.christophradtke.com/test/bla.php
 
Zuletzt bearbeitet:
Hey _voodoo,

G E N I A L ;-)

(und das um 2:46h.)
Ich glaube, da komme ich mit meinen bescheidenen PHP-Kenntnissen nie hin.:-(

Vielen Dank,
hab das ganze in meine Tabelle gepackt und läuft super!

Gruss
 
Zurück