daten aus tabelle addieren

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

  • daten aus tabelle addieren

    hallo,
    also das problem ist eigentlich total simpel aber trotzdem bekomme ich es nicht auf die reihe.
    also ich habe eine tabelle
    test1 aus denen ich user in einen array lade

    .
    .
    $query = "SELECT * FROM test1";
    $rs = mysql_query($query, $conn);
    while ($row = mysql_fetch_row($rs))
    {
    $finder[] = "$row[0]";
    }
    .
    .

    nun möchte ich die tabelle test2 abfragen in der es eine spalte user gibt und eine spalte size. es soll nun für jeden user eine gesamtzahl von size geben. ich hatte es mit diesem skript probiert aber das funktioniert irgendie nicht so ganz. kann mir vielleicht jemand weiterhelfen


    $summe=0;
    for ($ttt=0; $ttt<count($finder); $ttt++) {
    $query = "SELECT * FROM test2 WHERE user = '$finder[$ttt]'";
    $rs = mysql_query($query, $conn);
    while ($row = mysql_fetch_row($rs))
    {
    $summe=$summe+$row[2];
    }
    echo "$summe<br>";
    }


    danke

  • #2
    hi,

    wenn ich dein problem richtig verstehe, dann dürfte ein
    sql-statement ala

    Code:
    SELECT sum(size) FROM test2 WHERE user = '$finder[$ttt]'
    cu
    el pollo diablo

    Kommentar


    • #3
      danke

      danke. und wie kann ich dann sum(size) auslesen?

      Kommentar


      • #4
        genau wie jede andere Var auch, wird ja in ein Array geschrieben.

        Kommentar


        • #5
          Re: danke

          hi,

          eigentlich auf die selbe art wie vorher...
          Code:
          for ($ttt=0; $ttt<count($finder); $ttt++) {
          $query = "SELECT sum(size) FROM test2 WHERE user = '$finder[$ttt]'";
          $rs = mysql_query($query, $conn);
          while ($row = mysql_fetch_row($rs))
          {
          echo $row[2];
          }
          }
          was mir jetzt gerade einfällt... wäre es eigentlich nicht besser, einfach die beiden tabellen durch ein sql-statement (join) abzufragen und danach das ergebnis zu verarbeiten. auf diese weise würde man sich eine abfrage einsparen.

          cu
          el pollo diablo

          Kommentar


          • #6
            Klar wär das einfacher ... wenn du jetzt noch statt * aus test1 die tatsächliche Spalte angibst, die aus test1 ausgelesen wird, dann sieht die Query so aus:

            SELECT test1.spalte,sum(test2.size) where test2.user=test1.spalte group by test2.user
            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


            • #7
              also ich habe nun:

              for ($ttt=0; $ttt<count($finder); $ttt++) {
              $query = "SELECT sum(size) FROM stat1 WHERE user = '$finder[$ttt]'";
              $rs = mysql_query($query, $conn);
              while ($row = mysql_fetch_row($rs))
              {
              echo "$finder[$ttt]: ergebnis $row[7]<br><br>";
              }
              }

              ausprobiert. aber ich erhalte nicht sum(siz). irgendwas muss dort ja noch falsch sein *grübel* .....

              Kommentar


              • #8
                hi,

                du hast die falsche spalte in der ausgabe angegeben...

                echo "$finder[$ttt]: ergebnis $row[7]<br><br>";
                das ganze müsste folgendermassen lauten, da ansonsten
                die (in diesem fall nicht vorhandene) 7. spalte ausgegeben
                würde...

                echo "$finder[$ttt]: ergebnis $row[1]<br><br>";
                mfg
                el pollo diablo

                Kommentar


                • #9
                  ne. das klappt leider auch nicht
                  wenn ich $row[1] angebe bezieht er sich doch auf die zweite spalte in der tabelle stat1.
                  aber ich muss ja irgendwie an die sum(size) rankommen.

                  Kommentar


                  • #10
                    Original geschrieben von Titus

                    SELECT test1.spalte,sum(test2.size) where test2.user=test1.spalte group by test2.user
                    mhm. warum ist das nur so schwer *seufz*
                    wie bekomme ich denn hier die summe für jeden user?

                    Kommentar


                    • #11
                      ok. hab es nun. vielen dank für eure hilfe

                      Kommentar

                      Lädt...
                      X