Mathematisches Problem in mySQL Datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mathematisches Problem in mySQL Datenbank

    Hallo liebe User,
    ich nutze eine mySQL Datenbank mit PHP4 für meine Webseite. Jetzt habe ich eine Tabelle, in der unter anderem Felder als TINYINT aufgeführt sind, in denen Noten von 1 bis 6 stehen. Jeder neue Eintrag füllt auch die Noten in diesen Felder.
    Ich möchte nun auf meiner Webseite Werte aus jedem Feld ausgeben. Dazu will ich alle Felder Addieren und durch die Anzahl der "rows" dividieren, so daß ich eine Durchschnittsnote bekomme.
    Wie mache ich das am Besten? Direkt in mySQL oder vielleicht doch besser in php? Und mit welcher Funktion oder Selektion?
    Ich habe mit mysql_query mir schon alle Noten aus den einzelnen Feldern geholt. Jetzt komme ich bloß nicht mehr weiter. Vielleicht habt Ihr auch ein paar Codeschnipsel für mich.
    Ich würde mich über Hilfe sehr freuen.
    Bis dann
    Mario Heiß IT-Services

  • #2
    Hi,

    du könntest z.B. so ein Query ausführen:

    $query = mysql_query("select sum(feldname_note) as gesamt, count(*) as anzahl from tabellenname");

    $durchschnitt = mysql_result($query,0,"gesamt")/mysql_result($query,0,"anzahl");

    echo "Notendurchschnitt: ".$durchschnitt;


    Falls durch die Notensummer oder die Anzahl noch brauchst, dann kannst du den mysql_result auch erstmal in einer Variable speichern. Und falls du darüber hinaus auch die Noten alle selektieren willst, kannst du den Query um ein "select *, sum(feldname_note) as...." erweitern.

    P.S.: du kannst dir auch die beste oder schlechteste Note ausgeben lassen mit "select max(feldname_note) as beste_note, min(feldname_note) as schlechteste_note from tabellennamen"

    [Editiert von BrainBug am 03-04-2001 um 07:57]

    Kommentar


    • #3
      Lösung für Note

      Ich danke Dir, Du hast mir sehr geholfen. Die Vorschläge sind spitze und Du hast mir damit den nötigen Gedankenschub gegeben.
      Alles funktioniert einwandfrei. Hast Du noch eine Idee, wie ich vielleicht diese Ergebnisse in einem Balkendiagramm ausgeben könnte? Ist das mit PHP4 und mySQL überhaupt möglich?
      Vielen Dank schon mal
      Grüße Mario
      Mario Heiß IT-Services

      Kommentar


      • #4
        Kommt drauf an, was du als Balkendiagramm darstellen willst. Du kannst relativ einfach ein Balkendiagramm faqen, in dem du die Werte, die du darstellen möchtest, ausliest und mit diesen Werten dann die Höhe eines GIFs (z.B. einfarbiger Balken) berechnest.

        <?
        $durchschnitt="wert-den-du-mittlerweile-hast";
        $note1=xx;

        $balken=($note1/$durchschnitt)*200;
        ?>

        tabelle mit Balkendiagramm:

        <img src="balken.gif" width="20" height="<? echo $balken;?>">

        hier wäre, wenn die Note dem Durchschnitt entspricht, die höhe des Balkens 200px.
        Für mehrere Werte machst du ne Schleife im PHP-code oben und schreibst die Werte in ein Array balken[$i] und das gehst du dann unten in der Ausgabe auch wieder durch.

        Ist es ungefähr das, was du wolltest??

        Kommentar


        • #5
          Balkendiagramm mit php

          Jo super. Damit werde ich auch klar kommen. Eine ähnliche Idee hatte ich auch schon. Mich hätte interessiert, ob es eine PHP-Klasse oder dll gibt, in der alles schon drin wäre. Also Balkendiagramme usw. Aber damit werde ich mich wohl selbst beschäftigen müssen. Aber vielen Dank für Deine Ratschläge nochmal.
          Grüße Mario
          Mario Heiß IT-Services

          Kommentar


          • #6
            Ich hab noch ne Query für dich:

            select feldname_note,count(*) from tabellenname group by feldname_note order by feldname_note

            Damit bekommst du zu jeder Note die Anzahl eingetragener Zeilen.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar

            Lädt...
            X