Andreas: Summe über Spalte(MySQL), nur best. Datensätze

Hallo!
Klar, das ist grundsätzlich einfach, ich hab das so gemacht:

$summe = "SELECT SUM(Preis) FROM Warenkorb WHERE PHPSESSID = '$PHPSESSID'";
  $res = mysql_query($summe, $link);

Nur wie komme ich jetzt an die Summe als Variable in PHP???
Bis jetzt habe ich immer folgenden Befehl benutzt, ist aber für die Auftählung der Inhalte in einer Tabelle, wie geht das wenn man nur den einen Wert auslesen will?

$row=mysql_fetch_row($res)

Gruß
Andreas

  1. Hallo!

    $summe = "SELECT SUM(Preis) FROM Warenkorb WHERE PHPSESSID = '$PHPSESSID'";
      $res = mysql_query($summe, $link);

    Nur wie komme ich jetzt an die Summe als Variable in PHP???

    $summe = "SELECT SUM(Preis) AS summe FROM Warenkorb WHERE PHPSESSID = '$PHPSESSID'";

    Über $row['summe'], unter verwendung von mysql_fetch_array(), bekommst Du nun der Wert. Über $row[0], kommst Du an die Summe ran, sollte Dir aber wie ich sehe bakannt sein.

    Bis jetzt habe ich immer folgenden Befehl benutzt, ist aber für die Auftählung der Inhalte in einer Tabelle, wie geht das wenn man nur den einen Wert auslesen will?

    Meinst Du mit einen Wert nur ein Datensatz? Wenn geht das ganze ohne while-Schleife, mehr nicht.

    MfG, André Laugks

    1. Hi!
      Danke für die Hilfe!
      Aber warum schreibst Du noch "as summe"?
      Ich hab das jetzt mal weggelassen uund es funktioniert trotzdem:

      $summe = "SELECT SUM(Preis) FROM Warenkorb WHERE PHPSESSID = '$PHPSESSID'";

      $res2 = mysql_query($summe, $link);
        if (!$res2)
          die("Anfrage $summe scheitert.<br>\n");

      $row=mysql_fetch_array($res2);
      echo "$row[0]";

      Und noch eine Frage:
      Wie mache ich es, wenn ich ein2. Feld dazu zählen will?
      Hab das einfach so gemacht(probiert:-)

      SELECT SUM(Preis + Versand) FROM

      ist das OK, oder gibts da was gegen einzuwenden?

      Gruß
      Andreas

      1. Moin

        Aber warum schreibst Du noch "as summe"?
        Ich hab das jetzt mal weggelassen uund es funktioniert trotzdem:
        $summe = "SELECT SUM(Preis) FROM Warenkorb WHERE PHPSESSID = '$PHPSESSID'";
          $res2 = mysql_query($summe, $link);
          if (!$res2)
            die("Anfrage $summe scheitert.<br>\n");
        $row=mysql_fetch_array($res2);
        echo "$row[0]";

        Das "as summe" weist diesem Feld den Namen "summe" zu. So wie in deinem Beispiel ist das nicht nötig. Wenn du aber $row=mysql_fetch_array($res); gemacht hättest, könntest du über diesen Namen daraufzugreifen.
        Allgemein etwa so "SELECT bla,blu,bli ..." mit mysql_fetch_array() führt dazu, dass in diesem Array sowohl unter dem Schlüssel 0 als auch unter dem Schlüssel "bla" der Wert aus bla gespeichert ist, dementsprechendes gilt auch für 1 und blu und 2 und blu.
        Wenn du nur den Zugriff über Nummern benutzen willst, brauchst du diesen Namen nicht mit "as summe" zuzuweisen. Anmerkung mysql_fetch_array() führt meist zu besser lesbarem Code als mysql_fetch_row() und in der Anleitung steht extra betont dass ersteres nicht langsamer ist, also verwende lieber das.

        --
        Henryk Plötz
        Grüße aus Berlin

      2. Hallo!

        Aber warum schreibst Du noch "as summe"?

        Wurde ja von Henryk erklärt!

        Ich hab das jetzt mal weggelassen uund es funktioniert trotzdem:

        Weil Du mit mysql_fetch_row() arbeitest. Ich hatte es so verstanden, daß Du nicht weist wie Du an das Feld kommst. Erst nach dem schreiben habe ich das mit mysql_fetch_row() wahr genommen. Habe es dann stehen lassen.

        $summe = "SELECT SUM(Preis) FROM Warenkorb WHERE PHPSESSID = '$PHPSESSID'";

        SELECT SUM(Preis + Versand) FROM

        Probreien geht über Fragen. Aber das funktioniert.

        MfG, André Laugks