Brauche Idee, für Titel Ausgabe bei einer SELECT abfrage, Ausgabe, gruppierte Var, dann Titel
bearbeitet von
Hallo Matheu,
du kannst das so machen, wie Tobias das aufgeschrieben hat.
Aber tatsächlich ist dein Problem ein Musterproblem der strukturierten Programmierung: wie passt man die Programmstruktur an die Datenstruktur an. In den 70 Jahren, als man dieses Thema standardisierte, hat man Dateien gelesen. Heute liest man SQL Query-Ergebnisse. Aber im Prinzip ist es das Gleiche.
Deine Eingabe:
~~~
Queryergebnis
Row*
~~~
Lies: Ein Queryergebnis, das Queryergebnis ist eine Iteration von Rows
Deine Ausgabe:
~~~
HTML-Segment
Kategoriengruppe*
Überschrift
Inhalt
Detailsatz*
~~~
Lies: Deine Ausgabe ist ein Stück HTML, das aus Kategoriegruppen besteht. Eine Gruppe ist eine Abfolge von Überschrift und Inhalt. Der Inhalt ist eine Iteration von Detailsätzen.
Aufgabe der strukturierten Programmierung ist, eine Programmstruktur zu finden, die gleichzeitig zu Eingabe- und Ausgabestruktur passt.
Der Trick besteht in den meisten Fällen darin, einmal vorauszulesen. Damit wirft man einen kleinen Blick in die Zukunft und weiß, wie man die Logik steuern muss.
Pseudocode:
~~~
Query ausführen
Fetch auf erste Row
WHILE (row vorhanden)
$cat = $row['cat'];
Kategorieüberschrift schreiben
WHILE (row vorhanden ODER row['cat'] != $cat)
Detailzeile schreiben
Fetch auf nächste Row
END
END
~~~
So machte man das vor 50 Jahren. Und so funktioniert das auch heute noch :)
Literatur: Michael Jackson (sic!), Principles of Program Design
[en. Wikipedia über jackson-structured programming](https://en.wikipedia.org/wiki/Jackson_structured_programming)
[dt. Wikipedia über Jackson-Diagramme](https://de.wikipedia.org/wiki/Jackson-Diagramm)
Das klingt heute in der Zeit von objektorientierter und funktionaler Programmierung alles so obsolet. Als ich in den 80er Jahren Programmieren lernte, habe ich als BASIC Autodidakt angefangen, und dann in der Ausbildung JSP lernen müssen und fühlte mich zuerst vera...lbert. Aber für spezifische Aufgaben, wie genau dieser hier, ist Kenntnis dieser Techniken relevant und zeitlos.
_Rolf_
--
sumpsi - posui - obstruxi
Brauche Idee, für Titel Ausgabe bei einer SELECT abfrage, Ausgabe, gruppierte Var, dann Titel
bearbeitet von 1unitedpower~~~
Query ausführen
Fetch auf erste Row
WHILE (row vorhanden)
$cat = $row['cat'];
Kategorieüberschrift schreiben
WHILE (row vorhanden ODER row['cat'] != $cat)
Detailzeile schreiben
Fetch auf nächste Row
END
END
~~~
Müsste die Bedingung in der inneren Schleife nicht so lauten?
~~~
WHILE (row vorhanden AND row['cat'] == $cat)
~~~
Lies: Solange noch eine Zeile vorhanden ist und sie sich in der selben Kategorie wie ihre Vorgängerin befindet.
Brauche Idee, für Titel Ausgabe bei einer SELECT abfrage, Ausgabe, gruppierte Var, dann Titel
bearbeitet von 1unitedpowerHallo Matheu,
du kannst das so machen, wie Tobias das aufgeschrieben hat.
Aber tatsächlich ist dein Problem ein Musterproblem der strukturierten Programmierung: wie passt man die Programmstruktur an die Datenstruktur an. In den 70 Jahren, als man dieses Thema standardisierte, hat man Dateien gelesen. Heute liest man SQL Query-Ergebnisse. Aber im Prinzip ist es das Gleiche.
Deine Eingabe:
~~~
Queryergebnis
Row*
~~~
Lies: Ein Queryergebnis, das Queryergebnis ist eine Iteration von Rows
Deine Ausgabe:
~~~
HTML-Segment
Kategoriengruppe*
Überschrift
Inhalt
Detailsatz*
~~~
Lies: Deine Ausgabe ist ein Stück HTML, das aus Kategoriegruppen besteht. Eine Gruppe ist eine Abfolge von Überschrift und Inhalt. Der Inhalt ist eine Iteration von Detailsätzen.
Aufgabe der strukturierten Programmierung ist, eine Programmstruktur zu finden, die gleichzeitig zu Eingabe- und Ausgabestruktur passt.
Der Trick besteht in den meisten Fällen darin, einmal vorauszulesen. Damit wirft man einen kleinen Blick in die Zukunft und weiß, wie man die Logik steuern muss.
Pseudocode:
~~~
Query ausführen
Fetch auf erste Row
WHILE (row vorhanden)
$cat = $row['cat'];
Kategorieüberschrift schreiben
WHILE (row vorhanden ODER row['cat'] != $cat)
Detailzeile schreiben
Fetch auf nächste Row
END
END
~~~
So machte man das vor 50 Jahren. Und so funktioniert das auch heute noch :)
Literatur: Michael Jackson (sic!), Principles of Program Design
[en. Wikipedia über jackson-structured programming](https://en.wikipedia.org/wiki/Jackson_structured_programming)
[dt. Wikipedia über Jackson-Diagramme](https://de.wikipedia.org/wiki/Jackson-Diagramm)
Das klingt heute in der Zeit von objektorientierter und funktionaler Programmierung alles so obsolet. Als ich in den 80er Jahren Programmieren lernte, habe ich als BASIC Autodidakt angefangen, dann in der Ausbildung JSP lernen müssen und fühlte mich zuerst vera...lbert. Aber für spezifische Aufgaben, wie genau diese hier, ist Kenntnis dieser Techniken relevant und zeitlos.
_Rolf_
--
sumpsi - posui - obstruxi
Brauche Idee, für Titel Ausgabe bei einer SELECT abfrage, Ausgabe, gruppierte Var, dann Titel
bearbeitet von
Hallo Matheu,
du kannst das so machen, wie Tobias das aufgeschrieben hat.
Aber tatsächlich ist dein Problem ein Musterproblem der strukturierten Programmierung: wie passt man die Programmstruktur an die Datenstruktur an. In den 70 Jahren, als man dieses Thema standardisierte, hat man Dateien gelesen. Heute liest man SQL Query-Ergebnisse. Aber im Prinzip ist es das Gleiche.
Deine Eingabe:
~~~
Queryergebnis
Row*
~~~
Lies: Ein Queryergebnis, das Queryergebnis ist eine Iteration von Rows
Deine Ausgabe:
~~~
HTML-Segment
Kategoriengruppe*
Überschrift
Inhalt
Detailsatz*
~~~
Lies: Deine Ausgabe ist ein Stück HTML, das aus Kategoriegruppen besteht. Eine Gruppe ist eine Abfolge von Überschrift und Inhalt. Der Inhalt ist eine Iteration von Detailsätzen.
Aufgabe der strukturierten Programmierung ist, eine Programmstruktur zu finden, die gleichzeitig zu Eingabe- und Ausgabestruktur passt.
Der Trick besteht in den meisten Fällen darin, einmal vorauszulesen. Damit wirft man einen kleinen Blick in die Zukunft und weiß, wie man die Logik steuern muss.
Pseudocode:
~~~
Query ausführen
Fetch auf erste Row
WHILE (row vorhanden)
$cat = $row['cat'];
Kategorieüberschrift schreiben
WHILE (row vorhanden ODER row['cat'] != $cat)
Detailzeile schreiben
Fetch auf nächste Row
END
END
~~~
So machte man das vor 50 Jahren. Und so funktioniert das auch heute noch :)
Literatur: Michael Jackson (sic!), Principles of Program Design
[en. Wikipedia über jackson-structured programming](https://en.wikipedia.org/wiki/Jackson_structured_programming)
[dt. Wikipedia über Jackson-Diagramme](https://de.wikipedia.org/wiki/Jackson-Diagramm)
Das klingt heute in der Zeit von objektorientierter und funktionaler Programmierung alles so obsolet. Als ich in den 80er Jahren Programmieren lernte, habe ich als BASIC Autodidakt angefangen und dann in der Ausbildung JSP lernen müssen und fühlte mich zuerst vera...lbert. Aber für spezifische Aufgaben, wie genau dieser hier, ist Kenntnis dieser Techniken relevant und zeitlos.
_Rolf_
--
sumpsi - posui - obstruxi
Brauche Idee, für Titel Ausgabe bei einer SELECT abfrage, Ausgabe, gruppierte Var, dann Titel
bearbeitet von
Hallo Matheu,
du kannst das so machen, wie Tobias das aufgeschrieben hat.
Aber tatsächlich ist dein Problem ein Musterproblem der strukturierten Programmierung: wie passt man die Programmstruktur an die Datenstruktur an. In den 70 Jahren, als man dieses Thema standardisierte, hat man Dateien gelesen. Heute liest man SQL Query-Ergebnisse. Aber im Prinzip ist es das Gleiche.
Deine Eingabe:
~~~
Queryergebnis
Row*
~~~
Lies: Ein Queryergebnis, das Queryergebnis ist eine Iteration von Rows
Deine Ausgabe:
~~~
HTML-Segment
Kategoriengruppe*
Überschrift
Inhalt
Detailsatz*
~~~
Lies: Deine Ausgabe ist ein Stück HTML, das aus Kategoriegruppen besteht. Eine Gruppe ist eine Abfolge von Überschrift und Inhalt. Der Inhalt ist eine Iteration von Detailsätzen.
Aufgabe der strukturierten Programmierung ist, eine Programmstruktur zu finden, die gleichzeitig zu Eingabe- und Ausgabestruktur passt.
Der Trick besteht in den meisten Fällen darin, einmal vorauszulesen. Damit wirft man einen kleinen Blick in die Zukunft und weiß, wie man die Logik steuern muss.
Pseudocode:
~~~
Query ausführen
Fetch auf erste Row
WHILE (row vorhanden)
$cat = $row['cat'];
Kategorieüberschrift schreiben
WHILE (row vorhanden ODER row['cat'] != $cat)
Detailzeile schreiben
Fetch auf nächste Row
END
END
~~~
So machte man das vor 50 Jahren. Und so funktioniert das auch heute noch :)
Literatur: Michael Jackson (sic!), Principles of Program Design
[en. Wikipedia über jackson-structured programming](https://en.wikipedia.org/wiki/Jackson_structured_programming)
[dt. Wikipedia über Jackson-Diagramme Programmierung](https://de.wikipedia.org/wiki/Jackson-Diagramm)
Das klingt heute in der Zeit von objektorientierter und funktionaler Programmierung alles so obsolet. Als ich in den 80er Jahren Programmieren lernte, habe ich als BASIC Autodidakt angefangen und dann in der Ausbildung JSP lernen müssen und fühlte mich zuerst vera...lbert. Aber für spezifische Aufgaben, wie genau dieser hier, ist Kenntnis dieser Techniken relevant und zeitlos.
_Rolf_
--
sumpsi - posui - obstruxi
Brauche Idee, für Titel Ausgabe bei einer SELECT abfrage, Ausgabe, gruppierte Var, dann Titel
bearbeitet von
Hallo Matheu,
du kannst das so machen, wie Tobias das aufgeschrieben hat.
Aber tatsächlich ist dein Problem ein Musterproblem der strukturierten Programmierung: wie passt man die Programmstruktur an die Datenstruktur an. In den 70 Jahren, als man dieses Thema standardisierte, hat man Dateien gelesen. Heute liest man SQL Query-Ergebnisse. Aber im Prinzip ist es das Gleiche.
Deine Eingabe:
~~~
Query
Satz*
~~~
Lies: Eine Query, die Query ist eine Iteration von Sätzen
Deine Ausgabe:
~~~
HTML-Segment
Kategoriengruppe*
Überschrift
Inhalt
Detailsatz*
~~~
Lies: Deine Ausgabe ist ein Stück HTML, das aus Kategoriegruppen besteht. Eine Gruppe ist eine Abfolge von Überschrift und Inhalt. Der Inhalt ist eine Iteration von Detailsätzen.
Aufgabe der strukturierten Programmierung ist, eine Programmstruktur zu finden, die gleichzeitig zu Eingabe- und Ausgabestruktur passt.
Der Trick besteht in den meisten Fällen darin, einmal vorauszulesen. Damit wirft man einen kleinen Blick in die Zukunft und weiß, wie man die Logik steuern muss.
Pseudocode:
~~~
Query ausführen
Fetch auf erste Row
WHILE (row vorhanden)
$cat = $row['cat'];
Kategorieüberschrift schreiben
WHILE (row vorhanden ODER row['cat'] != $cat)
Detailzeile schreiben
Fetch auf nächste Row
END
END
~~~
So machte man das vor 50 Jahren. Und so funktioniert das auch heute noch :)
Literatur: Michael Jackson (sic!), Principles of Program Design
[en. Wikipedia über jackson-structured programming](https://en.wikipedia.org/wiki/Jackson_structured_programming)
[dt. Wikipedia über Jackson-Diagramme Programmierung](https://de.wikipedia.org/wiki/Jackson-Diagramm)
Das klingt heute in der Zeit von objektorientierter und funktionaler Programmierung alles so obsolet. Als ich in den 80er Jahren Programmieren lernte, habe ich als BASIC Autodidakt angefangen und dann in der Ausbildung JSP lernen müssen und fühlte mich zuerst vera...lbert. Aber für spezifische Aufgaben, wie genau dieser hier, ist Kenntnis dieser Techniken relevant und zeitlos.
_Rolf_
--
sumpsi - posui - obstruxi