Beiträge von Arne Drews

    Zitat

    Die Rechnungsnummer wird aufgrund des DateTimestamps erstellt

    Aus betriebswirtschaftlicher Sicht nicht erlaubt, aber könnte zumindest technisch hinhauen.
    Dennoch ist das Konzept Mist, vielleicht solltest Du mal darüber nachdenken, das umzubauen, oder hängen da andere größere Systeme mit dran?

    Zitat

    Die Rechnungsnummer (auto_increment) aus der 2. Tabelle ist ja via dem Feld 'Ausgang' (DateTime) mit der 1. Tabelle verknüpft.

    Rechnungsnummer => INT, Ausgang => DateTime
    Wenn Du damit Ergebnisse erhältst, würde ich denen nicht vertrauen... Das versuch mal mit einem anderen DBMS. MySQL is dafür bekannt, Fehler auch gern mal durch Zufallsergebnisse zu vertuschen...


    Btw., anstelle von TEMPORARY_TABLE würde ich eher VIEWS granular einsetzen und diese abfragen.

    Wenn Du mit Klassen arbeitest, mache es bitte gleich richtig. Die Syntax oben bei Dir stammt aus PHP4 Zeiten, das ist seit August 2008, also bereits über 10 Jahre(!) tot.
    Als Beispiel für Dein Snippet oben:


    Auch global sollte man nicht verwenden, übergebe die Daten, die Du benötigst als Parameter an die Methoden, in diesem Fall den Konstruktor.


    Aufruf für obiges Beispiel:

    PHP
    1. // AdminMode:
    2. $Spiele = new Spiele( $templates, 1 );
    3. // default mode:
    4. $Spiele = new Spiele( $templates );

    Du darfst kein Leerzeichen machen vor dem einleitenden Doppelpunkt von hover

    Code
    1. nav ul li :hover { color: #5cbc7c; }


    Das bedeutet, so wie es da steht, dass das hover für jedes einzelne Element in nav ul li separat angewendet werden soll.
    Du möchtest in diesem Fall aber quasi, dass alle Elemente in nav ul li gleichzeitig auf das :hover reagieren:

    Code
    1. nav ul li:hover * { color: #5cbc7c; }

    Wenn ich eval() sehe, kräuseln mir ja schon die Nackenhaare. Das solltest Du anders lösen.


    Was Dein Problem angeht, würde ich mal tippen, dass Du das

    PHP
    1. eval("\$games .= "".$this->template['game']."";");


    in etwa so abändern solltest

    PHP
    1. eval("\$games .= \"" . $this->template['game'] . "\";");


    Das sollte dann für alle eval()s gemacht werden.

    Ok, zum Verständnis:


    `preise`.`groesse` <=> `pakete`.`size`


    über welche Spalten ist die Tabelle `rechnungen` verknüpfbar mit `pakete` bzw. `preise`?
    Ohne die, sehe ich gar nicht, wie das realistisch möglich sein soll.

    Never change a running System sollte aber nur bei sinnvollen Systemen gelten...
    Wenn Du auf der Basis weitermachen möchtest, kommst Du nicht umhin, uns einen echten Aufbau ( nicht nur kurz dargestellt ) Deiner Datenbanktabellen vorzustellen.
    Deine kurzen Beispiele sind nicht wirklich nützlich, um bei der Grundlage helfen zu können.

    Also für mein Verständnis ist das Konzept zu überdenken.
    Wenn Du Verkäufe hast, hast Du auch Artikel und Kunden. Diese drei Dinge sind imho getrennt voneinander zu betrachten.


    Deine Tabelle Pakete ist für mich ebenfalls unklar, u.a. auch weil ich mich frage, was das Datum der Rechnungsstellung darin verloren hat? Das gehört einzig in die Tabelle Rechnungen.


    Eine Tabelle Rechnung ( Invoices ) wäre im ersten Step bei mir so in etwas aufgeaut:


    Das sind die wichtigsten Kerninformationen, die mir adhoc einfallen und aus meiner Sicht grundsätzlich Rechnungsrelevant sind.
    Enthaltene Artikel gehören für mich wieder in eine separate Tabelle, die über die InvoiceId verknüpft werden kann.


    Da Du aber nur den Umsatz benötigst, reicht die Invoices-Tabelle vollkommen aus.
    Jetzt musst Du nur noch je nach Auswertung die Spalte InvoiceDate auf das Tagesdatum oder auf den Monat runterbrechen.
    Willst Du beides in einer Auswertung haben, würde ich UNION verwenden.