ausgelesene und addierte werte aus tabelle durch gesamtzahl teilen....?

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

  • ausgelesene und addierte werte aus tabelle durch gesamtzahl teilen....?

    hallo mal wieder

    ich kann mich nur immer wieder bei euch bedanken;
    ich merke jeden tag den fortschritt und wie ich mittlerweile
    auch gut selbst weiterkomme.....nichts desto trotz gibt
    es ab und zu probleme bei denen ich alleine nicht weiterkomme:

    ich habe eine tabelle in der bewertungen in form von text und auch noten gespeichert werden d.h. jeder user gibt zu seiner bewertung auch eine note ab die dann zu seinem kommentar dazu gespeichert wird

    Code:
    
    $summe = mysql_query("select sum(note) from kommentar WHERE id=1",$db);
    
    $ausgabe= mysql_fetch_row($summe);
    echo $ausgabe[0];

    so, ich frage also in dem fall alle noten ab die für den eintrag mit der id 1 eingetragen wurden....wie schaffe ich es nun den wert durch die gesamtzahl der abgegebenen noten
    zu teilen um dann beispielsweise eine 3 oder 4 oder sonstwas (z.b. in einem schulnotensystem) zu erhalten..
    muss ich das ganze grundsaetzlich anders angehen oder ist das soweit richtig?

    2. gibt es anschliessend eine möglichkeit etwas in der
    art "wenn note gleich 2 dann zeig mir gruenerboppel.gif" auszugeben?

    vielen dank und gruesse

    andre


  • #2
    -threadnachobenschieb- ;-)

    kann mir wirklich keiner helfen? ist das so schwer? ich hab
    mir ja schon verschiedene ansätze gedacht: schon beim
    einspeichern berechnen lassen und dann in ein extra feld
    den durchschnitt speichern oder immer erst bei aufruf des entsprechenden links die wert auslesen, addieren und durch die anzahl der werte teilen...aber egal wie ich habe keine ahnung....das mit dem "gruenerboppel.gif" muesste ja wenn ich den durchschnittswert schon in der db gespeichert habe und dann auslese nicht so schwer sein (so mit if und so)
    ...wie sich das allerdings im Fall der zweiten Lösung gestlaten würde...keine Ahnung

    Vielen Dank und Grüße

    Andre

    Kommentar


    • #3
      hi,

      du wirst ein 2. Select nicht umgehen können

      1. Select = sum(note)
      2. Select = count(note)

      anhand von diesen zahlen kannsz du leicht die Durchschnittsnote errechnen.

      Berni

      php-Entwicklung | ebiz-consult.de
      PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
      die PHP Marktplatz-Software | ebiz-trader.de

      Kommentar


      • #4
        hmm..könntest du die syntax ein wenig ausformulieren?

        danke

        andre

        Kommentar


        • #5
          ok habs selber rausgefunden ! danke trotzdem )

          Kommentar


          • #6
            sorry habe eben erst deine letzte Frage gesehen.

            Berni

            php-Entwicklung | ebiz-consult.de
            PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
            die PHP Marktplatz-Software | ebiz-trader.de

            Kommentar


            • #7
              klar geht das in einer Query ...
              Code:
              if ($q = mysql_query("select sum(note),count(*) from kommentar WHERE id=1",$db))
              {
                list ($summe, $anzahl) = mysql_fetch_row ($q);
                echo "$anzahl Kommentare";
                if ($anzahl)
                  echo "; Durchschnittsnote ",$summe/$anzahl
              }
              oder für alle IDs auf einmal:
              Code:
              if ($q = mysql_query("select id,sum(note),count(*) from kommentar group by id order by id",$db))
                while (list ($row_id, $summe, $anzahl) = mysql_fetch_row ($q))
              {
                echo "ID=$row_id: $anzahl Kommentare";
                if ($anzahl)
                  echo "; Durchschnittsnote ",$summe/$anzahl
                echo "<br>\n";
              }
              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


              • #8
                hmm danke titus und bernie,

                ich habs jetzt schon etwas umständlicher gelöst und
                habe dabei folgendes problem:

                ich frage also select sum und selectcount sum ab
                ersteres wird in $ausgabe geschickt und zweiteres in $ausgabecount geschickt...

                anschliessend möchte ich abfragen ob denn $ausgabe überhaupt was enthält weils ja sonst ne division durch null gibt:

                Code:
                if ($ausgabe==0) {
                
                
                echo "keine Note";
                
                
                } else {
                
                $gesamtnote=$ausgabe[0]/$ausgabecount[0];
                echo $gesamtnote;
                
                }
                ich erhalte aber trotzdem bei denen die keine "note" haben
                eine division by zero..

                woran könnte es liegen?

                danke

                andre

                Kommentar


                • #9
                  aaarggh...

                  $ausgabe[0] natürlich...jetzt passts...2 stunden hab ich gesucht, ich depp

                  danke...

                  andre

                  Kommentar

                  Lädt...
                  X