Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP + MySQL - Berechnet die Summe nicht mehr ?!

Einklappen

Neue Werbung 2019

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

  • PHP + MySQL - Berechnet die Summe nicht mehr ?!

    Hallo zusammen,

    ich wollte gerade etwas für mich fertig machen und musste feststellen, dass bei meinem vorhaben immer ein Fehler entsteht.
    Ich arbeite hier in dem Projekt noch mit MySQL da ich das nur Lokal verwendet wollte und nicht auf einem öffentlichen Webspace.
    (Bitte daher nicht schreiben man macht das mit mysqli oder pdo - würde es gerne mit mysql machen)

    Nun zu meinem Vorhaben... Ich wollte per PHP 2 Werte aus meiner Tabelle berechnen und das ganze so:
    PHP-Code:
    include("mysql.php");

                                            
    $abfrage mysql_query("SELECT * FROM `ytd`");
                                            while(
    $row mysql_fetch_assoc($abfrage)){                                
                                                
    $id $row["id"]; 
                                                
    $summe mysql_query("SELECT SUM(`v-wert-neu`) - SUM(`v-wert-alt`) AS summe FROM `ytd` WHERE id = $id");
                                                
    $wert_alt $row["v-wert-alt"]; $wert_neu $row["v-wert-neu"];

                                                    echo
    "
                                                    <tr>
                                                        <td>
    $id</td>
                                                        <td>
    $wert_alt</td>
                                                        <td>
    $wert_neu</td>
                                                        <td>
    $summe</td>
                                                    </tr>
                                                    "
    ;
                                            } 
    Es gibt bsp. gerade 3 Werte:
    1.) 10 20
    2.) 50 50
    3.) 50 75

    Dann soll ja eigentlich "$summe" immer:
    1.) 10
    2.) 0
    3.) 25

    sein... Bei mir kommt aber ein Fehler "Resource id #5" ... Mal ist es auch #4 oder #1 oder #12
    Immer unterschiedlich.

    Wieso rechnet er nicht mehr die Summe aus meiner Tabelle aus ?

    Die Werte sind in INT gespeichert

  • #2
    Nutze mysqli:P

    SUM ist eine Gruppen Funktion, du musst schon nach irgendwas Gruppieren damit eine Summe entsteht. Danach $summe = .. so funktioniert das nicht, mysql_query gibt dir erstmal eine Resource zurück, aus dieser musst du via mysql_fetch_assoc den Wert ziehen. Generell macht es kein Sinn ein SQL query in deiner Abfrage zu machen.

    PHP-Code:
    <?php
    $abfrage 
    mysql_query("SELECT *,`v-wert-neu`-`v-wert-alt AS summe, FROM `ytd`");
    while (
    $row mysql_fetch_assoc($abfrage)) {
        
    $id $row["id"];
        
    $summe $row['summe'];
        
    $wert_alt $row["v-wert-alt"];
        
    $wert_neu $row["v-wert-neu"];

        echo 
    "
                                                    <tr>
                                                        <td>
    $id</td>
                                                        <td>
    $wert_alt</td>
                                                        <td>
    $wert_neu</td>
                                                        <td>
    $summe</td>
                                                    </tr>
                                                    "
    ;
    }
    du hättest auch in der ersten SQL Abfrage die Summe ermitteln können.

    EDIT: und eine Summe ermittelst du durch Addieren, bei einer Substraktion hast du eine Differenz
    apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

    Kommentar


    • #3
      Hey danke für deine Antwort.
      Wenn ich das jetzt allerdings so mache, wie du es mir vorgemacht hast, dann wird gar nichts mehr in meiner Tabelle angezeigt an Werten.

      Habe das
      PHP-Code:
      $abfrage mysql_query("SELECT *,`v-wert-neu`-`v-wert-alt AS summe, FROM `ytd`"); 
      auch leicht "verbessert" mit dem fehlenden ` zu
      PHP-Code:
      $abfrage mysql_query("SELECT *,`v-wert-neu`-`v-wert-alt` AS summe, FROM `ytd`"); 
      Aber nun ja... Keine Ausgabe mehr :/

      Kommentar


      • #4
        Zitat von BlackScorp Beitrag anzeigen
        SUM ist eine Gruppen Funktion, du musst schon nach irgendwas Gruppieren damit eine Summe entsteht.
        Aggregatfunktionen ohne GROUP BY führen immer zu einer Gruppierung aller Datensätze.

        Kommentar


        • #5
          dann mach mal das

          PHP-Code:
          $abfrage mysql_query("SELECT *,`v-wert-neu`-`v-wert-alt` AS summe FROM `ytd`") or die("Fehler in der Abfrage:".mysql_error()); 
          apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

          Kommentar


          • #6
            Zitat von erc Beitrag anzeigen

            Aggregatfunktionen ohne GROUP BY führen immer zu einer Gruppierung aller Datensätze.
            WHERE id = xyz löst aber die Grupierung auf
            apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

            Kommentar


            • #7
              Richtig... Nun ich hab es ohne das eine Komme da vor FROM gemacht ...
              PHP-Code:
              $abfrage mysql_query("SELECT *,`v-wert-neu`-`v-wert-alt` AS summe FROM `ytd` WHERE id"); 
              klappt jetzt

              Kommentar

              Lädt...
              X