PHP Zu hohe Logik für mich bei Darstellung von Wochentage in Tabelle

raven16

Lieutenant
Registriert
Nov. 2008
Beiträge
580
Hi,

ich glaub es ist zu spät für mich :D

Ich hab folgendes Problem:

In einem Formular habe ich für jeden Wochentag eine Checkbox.
d.h. man kann dort z.B. Di,Mi,Do,Sa auswählen.

in der Datenbank habe ich für jeden Wochentag ein Tinyint, welches auf 1 gesetzt wird, wenn der Tag "gecheckt" wurde.

Nun möchte ich auch Di,Mi,Do,Sa wieder als Ausgabe haben in der Tabelle wo ich den Datensatz anzeige.

Mein logisches Problem dabei ist, wie ich die Kommas zwischen den Wochentagen setze.
d.h. es muss nen Komma gesetzt werden, wenn mindestens 2 Wochentage gesetzt sind.

Als i-Tüpfelchen wäre, wenn mehrere tage hintereinander sind, dann zeige beispielsweise Di-Do an
 
durch affected rows kannst du die anzahl der "betroffenen" Datensätze bestimmen.

sagen wir mal du hast es einer variable "x" übergeben... und deine tage in einem array gespeichert

if($x < 2){
echo $tag[x];
} elseif($x = 2) {
echo $tag[0].", ".$tag[x];
} else {
echo $tag[0]." - ".$tag[x];
}


​so ungefair müsste das gehen ^^
 
Zuletzt bearbeitet:
Komma setzen mache ich immer so, dass die Ausgabe immer mit einem Komma endet. Als Beispiel so:

PHP:
while($row = $stmt->fetch())
{
    $ausgabe.= $row['wurst'].',';
}

Problem jetzt, das Komma am Ende ist immer zu viel. Da bügel ich jetzt einfach mit substr() das letzte Zeichen weg, da das ja immer in Komma ist.

Das wäre eine Möglichkeit.
Eine andere ist, wenn du einen Zähler in der Schleifen mitlaufen lässt. Wenn der Zähler größer als 1 ist (also mehr als ein Datensatz) dann gibt vorher ein Komma aus, sonst nicht. Dann passt das auch.
 
Danke für die Vorschläge :)

Ich hab das bis jetzt einfach erst mal so gelöst, dass ich überall ein leerzeichen vorgemacht habe, sodass es einigermaßen ordentlich aussieht.

Werde eure Vorschläge aber noch bei Gelegenheit testen
 
Oder einen Zähler mitlaufen lassen und das Komma setzen, wenn der Zähler >= 1 ist oder einfach mit nem bool merken, obs der erste Durchgang ist und bei weiteren Druchgängen das Komma setzen.
 
Zurück
Oben