Berechnen von Datensätzen

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

  • Berechnen von Datensätzen

    Hallo,

    möchte derzeit mir eine Umfrage erstellen, nun stellt sich mir die Frage wie ich die Votes von den Fragen erstmal zusammen zählen kann.
    Die Abrage ist kein problem
    Aber wie berechne ich die einzelen datensätze. derzeit sind dort 3 enthalten. Kann man das mit einer array machen?

    PHP-Code:
        $abfrage_votes "SELECT votes FROM umfrage_antwort WHERE id = '$umfrage' ";
        
    $ergebnis_votes mysql_query($abfrage_votes);
            while(
    $row_votes mysql_fetch_object($ergebnis_votes))
            {
    $row->votes 
            

    für einen tip wäre ich sehr dankbar.

  • #2
    meinst du sowas wie COUNT(*) ?

    Ich würde die gewählten Antworten direkt in ein Feld zu der Antwort speichern.

    D.h.

    antwort1 | gewählt 5x
    antwort2 | gewählt 1x


    Könnte sonst langsam werden.... (je nachdem wie du noch verknüpfst etc. etc.)
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      oder wenn du es mit der mysql abfrage so machen willst, kommst du an die anzahl der datensätze einfach mit:
      PHP-Code:
      $abfrage_votes "SELECT votes FROM umfrage_antwort WHERE id = '$umfrage' ";
      $ergebnis_votes mysql_query($abfrage_votes);
      $anzahl_votes mysql_num_rows($ergebnis_votes); 

      Kommentar


      • #4
        Genau mysql_num_rows($ergebnis_votes) ist eine gute idee aber jetzt noch meine zweite frage ich muß ja jetzt jeden einzelnen noch berechen.

        von der gesamtzahl. wie bekomme ich denn jetzt noch die einzelnen werte rauß? die ich hinterher ja noch berechnen muß
        Zuletzt geändert von chrisibrand; 24.06.2005, 10:22.

        Kommentar


        • #5
          Original geschrieben von chrisibrand
          von der gesamtzahl. wie bekomme ich denn jetzt noch die einzelnen werte rauß? die ich hinterher ja noch berechnen muß
          kannst du das mal etwas weniger "deppert" und in verständlichem deutsch formulieren?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            das ist keine gute idee mit mysql_num_rows

            Oder stehen in den einzelnen Ergebniszeilen noch wichtige Sachen drinne?

            Wie ich schon sagte, benutze COUNT(*)


            Denn wenn du sagen wir mal 30.000 Votes hast, würde deine Query dir 30.000 Zeilen zurückgeben, die dann wiederum durchlaufen werden müßten. Meine Query gibt dir 1 Zeile zurück -> viel performanter
            Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
            var_dump(), print_r(), debug_backtrace und echo.
            Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
            Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
            Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

            Kommentar


            • #7
              Noch ein Tip:
              Ich gehe mal davon aus, dass id als INTEGER definiert ist.
              Dann ändere mal das
              PHP-Code:
              WHERE id '$umfrage' "; 
              in
              PHP-Code:
              WHERE id $umfrage "; 
              (also ohne '').
              Sonst benutzt mysql keinen Index und wird langsam.

              SELECT votes FROM umfrage_antwort WHERE id = $umfrage
              Wofür steht die id eigentlich?
              Für eine bestimmte Umfrage oder für eine bestimmte Antwort bei einer Umfrage?
              Speicherst Du in der Tabelle umfrage_antwort mehrere Umfragen oder nur eine?
              Bei mehreren Umfragen musst Du ja irgendwie noch die einzelnen Antworten auseinanderhalten.
              Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

              Kommentar


              • #8
                MERKÄ:
                Was man in SQL erledigen kann, sollte man nicht in der Scriptsprache machen.

                SQL hat sehr weitreichende Funktionen zum rechnen, und wie schon mehrfach erwähnt sollte count dein Problem lösen. Wahrscheinlich wirst du dann diese Query 5 mal für die jeweilige Umfrage laufen lassen. Also 30 x Toll, 32 x geht so, 15 x misst, 10 x gaaanz schlecht - oder so. Mit einem geschickten GROUP statement kannst du das alles auf einmal mit einer (1!) Query aus der DB holen.

                Kommentar


                • #9
                  Ok mache ich doch gerne

                  Also ich habe in der Umfrage 3 Antworten sprich damit habe ich auch 3 Datensätze in der Datenbank mit Votes

                  Antwort 1 | Votes 5
                  Antwort 2 | Votes 3
                  Antwort 3 | Votes 2


                  Ich möchte jetzt einmal alle zusammen zählen und einmal möchte ich von der Gesamtzahl die Prozentzahl ausrechnen.

                  So dass ich den Votes von jeder Antwort als einzelne Variable habe.


                  Kommentar


                  • #10
                    So dass ich den Votes
                    Bitte???

                    guckst du SUM(), der rest ist reine multiplikation/division...

                    Kommentar


                    • #11
                      Richtig,

                      In der Tabelle umfrage_antwort können meherere antworten von verschiedenen umfragen gespeichert werden. Diese sind dann mit der id der Umfrage versehen.

                      von den einzelnen umfragen die einzelnen antworten werden unterschieden von der id der Tabelle. Diese id wird auch als Value von dem options Button übermittelt und hat damit auch eine eindeutige zuweisung.

                      Kommentar


                      • #12
                        In der Tabelle umfrage_antwort können meherere antworten von verschiedenen umfragen gespeichert werden. Diese sind dann mit der id der Umfrage versehen.
                        Das kannst du sicher mit WHERE einschränken...

                        Kommentar

                        Lädt...
                        X