PHP-SQL Frage

Viewing 4 reply threads
  • Autor
    Beiträge
    • #1301
      Frank Bergmann
      Mitglied

      Hallo,

      ich versuche nun, nach langer Zeit, etwas PHP zu lernen und progge zum Spaß einmal ein eigenes, spezielles CMS. Nun habe ich eine kleine Frage, wo ich nicht direkt weiterkomme.

      Ich habe eine Tabelle mit mehreren Einträgen (id, firmaid, jahr, umsatz, …). Nun möchte ich das Umsatzwachstum, immer der letzten Jahre ausrechnen. Könnt Ihr mit dabei helfen wie ich das Problem lösen könnte? Mit einer Schleife, $zaehler, $count, …?

      Beispieleinträge könnte sein:

      1, 1, 2009, 10
      2, 1, 2011, 13
      3, 1, 2010, 12
      4, 2, 2011, 28
      5, 1, 2012, 14

      Vielen Dank für Eure Hilfe.

    • #1302

      Hallo Frank,

      zufälliger Weise hab ich ein passendes CMS-Tutorial geschrieben, kannst ja mal nen Blick rein werfen 😉

      Im Endeffekt brauchst du nur ein Select mit der SUM-Funktion. Versuch mal das (ungetestet):

      <?php
      function get_revenue($year)
      {
      //Default gibt es keinen Umsatz.
      $res = 0;

      //Sum summiert die einzelnen Einträge der Tabelle,
      //"tabelle" entsprechend umbenennen.
      //mysql_real_escape string, damit man keine SQL-Injection machen kann
      $sql = "SELECT SUM(umsatz) "
      ."FROM tabelle "
      ."WHERE jahr = '".mysql_real_escape_string($year)."'";

      //Ergebnis holen
      $query = mysql_query($sql);

      //Nur, wenn der Query erfolgreich war
      if($query)
      {
      //Erste Zeile holen
      $row = mysql_fetch_row($query);

      //Nur wenn die erste Zeile auch befüllt ist
      if(is_array($row) && sizeof($row) > 0)
      {
      //Dem Ergebnis zuweisen
      $res = $row[0];

      //Nur noch einaml zur Sicherheit, wird er aber normalerweise
      //nicht reingehen.
      if(!is_numeric($res))
      {
      $res = 0;
      }
      }
      }

      //Zurückgeben
      return $res;
      }

      //Test
      echo get_revenue(2011);
      ?>

      Mit der Funktion kannst du dann die einzelnen Jahre durchgehen und bekommst den Umsatz des Jahres heraus.

      P.S.: Einrückungen wurden leider nicht vom Forum angenommen, aber die kannst ja nachpflegen 😉

    • #1314
      Frank Bergmann
      Mitglied

      Danke Stefan. Das klappt soweit. Ich hatte nur vergessen zu schreiben, dass ich bereits alle vorhandenen Jahre zu der Firma ausgebe. Der Code sieht so aus:

      <?php
      $sql=mysql_query("SELECT jahr, umsatz FROM tabelle LEFT JOIN .....");
      while ($row=mysql_fetch_array($sql))
      {
      $jahr=$row['jahr'];
      $umsatz=$row['umsatz'];

      echo"Geschäftsjahr ".$jahr." mit ".$umsatz."
      ";?>
      <?php } ?>

      Jetzt wollte ich in dieser „Schleife“ die Berechnung durchführen. Hättest du da einen Tipp für mich wie ich das Umsatzwachstum einer Firma, bezogen auf das Vorjahr ausrechnen kann?

      P.S.: Der Link ist sehr interessant, werde da noch einige Themen lesen müssen.

    • #1317

      Ich würde mir einfach den alten Umsatz in einer Variable zwischenspeichern. So z.B.:

    • #1323
      Frank Bergmann
      Mitglied

      Danke vielmals. Habe es nun, endlich, mit einer Mischung aus deinen beiden Tipps gelöst bekommen. Jippi 😉

Viewing 4 reply threads
  • Du musst angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.