ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
512
512
EMPFEHLEN
-
Hallo an alle Hilf-Wütigen,
folgende Tabelle
id ... datum ............ von.......bis.........wer
1......2003-12-01....12:00...18:00.....1
2......2003-12-01....10:00...16:00.....2
3......2003-12-02.....11:00..19:00.....2
4......2003-12-02.....14:00..17:00 ....1
5......2003-12-03.....09:00...16:00....2
6......2003-12-03.....10:00...18:00....1
Nun möchte ich diese Schichten farbig ausgeben (1=blau | 2=rot).
Dabei ist bedingung, dass die Farben immer abwechselnd untereinander stehen, damit man einen besseren Überblick hat.
Bisher hatte ich immer ORDER BY datum in der Abfrage stehen, was aber nicht ausreicht, da der Wert "wer" nicht immer abwechselnd 1 2 1 2 1 2 ist.
Wie kann ich die Abfrage umstrukturieren, damit auch der Wert "wer" berücksichtigt wird und immer wie gewüscht ausgegeben wird.
Ich habe es schon so versucht: GROUP BY datum ORDER BY wer ... leider führte das nicht zum gewünschten Erfolg. Habe ich da irgendetwas missverstanden?
Bitte klärt mich auf
Danke!Geändert von Eiszwerg (01.12.03 um 20:32 Uhr)
-
Wie willst du das ganze genau sortieren?
1. nach wer
2. Nach Datum, Startzeit, Endzeit
?
Ich würde da etwas anders rangehen, da ORDER BY soetwas nicht unterstützt (meines wissens)...
Mache 2 Abfragen.
1. Abfrage: SELECT * FROM tabelle WHERE wer=1
2. Abfrage: SELECT * FROM tabelle WHERE wer=2
Dann gehst du das ganze so durch:
PHP-Code:<?php
$conn = mysql_connect($host, $user, $pass);
mysql_select_db($database, $conn);
$res1 = mysql_query("SELECT * FROM tabelle WHERE wer=1", $conn);
$res2 = mysql_query("SELECT * FROM tabelle WHERE wer=2", $conn);
$anz1 = mysql_num_rows($res1);
$anz2 = mysql_num_rows($res2);
$anz = ($anz1 > $anz2) ? $anz1 : $anz2;
echo "<table>\n";
for($i=1;$i<=$anz;$i++) {
if($i<$anz1) {
$data = mysql_fetch_array($res1, MYSQL_ASSOC);
outputData($data);
}
if($i<$anz2) {
$data = mysql_fetch_array($res2, MYSQL_ASSOC);
outputData($data);
}
}
echo "</table>\n";
function outputData($data) {
$col = ($data["wer"] == 1) ? "#B3B5FF" : "#E88686";
echo "<tr><td bgcolor=\"".$col."\">".$data["datum"]."</td>
<td bgcolor=\"".$col."\">".$data["von"]."</td>
<td bgcolor=\"".$col."\">".$data["bis"]."</td></tr>\n";
}
?>Geändert von Daxi (02.12.03 um 17:18 Uhr)
Mit besten Grüßen,
Christian Daxberger
Mein Last.fm Profil
Nützliche Seiten:
SelfHTML · SQL in 21 Tagen (Markt & Technik)
-
Hui,
da hast Du ja ganz schön vorgelegt
Danke erstmal dafür.
Werde mal schauen, wieweit ich da durchsteige und was ich davon verwenden kann.
Um Deine Frage zu beantworten. Ich möchte primär nach Datum sortieren und sekundär einfach erzwingen, dass die Datensätze abwechselnd nach "wer " gelistet werden.
Beispiel:
1 2003-12-02 07:00 14:00 1
2 2003-12-02 08:00 15:00 2
3 2003-12-02 09:00 17:00 1
4 2003-12-02 08:00 15:00 2
Sodala... ich stürze mich dann mal in meinen Code
Gruss ICEzW3RG
-
Moin,
......order by Datum, wer........
Das sollte auch das gewünschte Ergenbnis bringen.Gruß
Tex
-
@Texaner:
Die von dir vorgeschlagene Abfrage bringt ihm nur eins...
Es wird nach Datum sortiert.
Nach wer soll aber nicht "sortiert" werden sondern der Wert 1 und 2 sollen sich abwechseln...
Hier der Code, der dich noch mit der Datumssortierung weiterbringt...
PHP-Code:<?php
$conn = mysql_connect($host, $user, $pass);
mysql_select_db($database, $conn);
$res1 = mysql_query("SELECT * FROM tabelle WHERE wer=1 ORDER BY datum ASC, von ASC, bis ASC", $conn);
$res2 = mysql_query("SELECT * FROM tabelle WHERE wer=2 ORDER BY datum ASC, von ASC, bis ASC", $conn);
$anz1 = mysql_num_rows($res1);
$anz2 = mysql_num_rows($res2);
$anz = ($anz1 > $anz2) ? $anz1 : $anz2;
echo "<table>\n";
for($i=1;$i<=$anz;$i++) {
if($i<$anz1) {
$data = mysql_fetch_array($res1, MYSQL_ASSOC);
outputData($data);
}
if($i<$anz2) {
$data = mysql_fetch_array($res2, MYSQL_ASSOC);
outputData($data);
}
}
echo "</table>\n";
function outputData($data) {
$col = ($data["wer"] == 1) ? "#B3B5FF" : "#E88686";
echo "<tr><td bgcolor=\"".$col."\">".$data["datum"]."</td>
<td bgcolor=\"".$col."\">".$data["von"]."</td>
<td bgcolor=\"".$col."\">".$data["bis"]."</td></tr>\n";
}
?>Mit besten Grüßen,
Christian Daxberger
Mein Last.fm Profil
Nützliche Seiten:
SelfHTML · SQL in 21 Tagen (Markt & Technik)
-
-=] TOPIC CLOSED [=-
Habe mich von wer=2 getrennt und nun brauch ich das nicht mehr wissen
Ähnliche Themen
-
GROUP BY + ORDER BY `id`
Von Sasser im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 20.12.08, 05:54 -
GROUP BY in Kombination mit ORDER BY [MySQL]
Von versuch13 im Forum Relationale DatenbanksystemeAntworten: 7Letzter Beitrag: 07.03.08, 15:05 -
mal wieder DINSTINCT, GROUP BY und ORDER
Von Pullmann im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 04.10.06, 14:30 -
Group and order
Von bpkp im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 27.01.05, 17:13 -
GROUP und ORDER
Von EM-Autotechnik im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 18.05.04, 14:44





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren