Hey zusammen,
ich habe folgende Tabelle:
objektId | objektname | eigenschaften |
1000 | objekt1 | test1 |
1000 | objekt1_1 |
test1_2 |
1001 | objekt2 | test2 |
1001 | objekt2_1 | test2_1 |
usw...
Nun möchte ich, dass von jeder Id alle Ausgaben ab der 2 ten Id eingefärbt werden. Das heißt, dass das erste Objekt bei der Id 1000 nicht eingefärbt wird sondern erst das zweite Objekt des ersten. Und dies mit jeder Id.
Ich habe mir viele Gedanken darüber gemacht. Und kam so zum Gruppenbruch. Jedoch liegt da für mich das Problem, dass jede Id eine andere Farbe haben muss und die Id nicht so wie in der Datenbank steht ausgegeben wird. Es wird anstatt zweimal 1000 die Id immer hochgezählt ( 1001 , 1002 ,1003, ..), was ich nicht verstehe. Zusätzlich habe ich noch ein Array mit Classennamen erstellt welche dann dynamisch mit shuffle zugeordnet werden. Dies klappt auch nicht so gut weil es immer vorkommen kann, dass auch mal gleiche Klassen ausgegeben werden.
Kann mir jemand sagen, warum die objektId immer um 1 erhöht wird?
Auch habe ich mir überlegt alle Ids aus der Datenbank zu fetchen, was doch ein sehr großer Aufwand bei jeder Ladung der Seite ist, diese in ein Array zu packen und dann nach und nach die Array Werte mit den gezogenen Ids zu vergleichen und dann die Klasse den Tags auch dynamisch zu geben. Und wenn die Id ungleich der Array-id ist wird die Array-Id aus dem Array entfernt und somit gehts weiter.
Mein Problem ist, wie ich es hinbekomme, dass das erste Element der neuen Id nicht eingefärbt wird sondern erst das 2te.
Das ist das Script dazu (Gruppenumbruch):
<?php
$classes = ["red", "white", "yellow"];
if(isset($result)){
$id = 0;
while ($data = $stmt->fetch(PDO::FETCH_OBJ)) {
if($id !== $data->objektId){
echo "<tr>";
echo "<td >
<a class='". $classes[0] . "' href='objekt.php?objektId=" . htmlspecialchars($data->objektId) . "'>" . htmlspecialchars($data->objektId) . "</a>
</td>";
echo "<td>" . htmlspecialchars($data->objektname) . "</td>";
echo "<td>" . htmlspecialchars($data->eigenschaften) . "</td>";
echo "</tr>";
$id = $data->objektId;
shuffle($classes);
}
}
}
?>
Alles anzeigen
Habt ihr denn Vorschläge und Ideen wie man es noch umsetzen kann?
Grüße,
Stef