Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatisch rechnen in einer Tabelle

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Automatisch rechnen in einer Tabelle

    Hallo liebe Fachleute,
    ich bin noch nicht so lange im Studium und komme nicht weiter bei einer Aufgabe
    evtl. hat jemand von Euch eine Idee wie ich mein Problem lösen kann ?

    Ich möchte Daten die aus einer MySQL Datenbank auf einer .PHP Seite ausgegeben werden automatisch berechnen lassen.

    Die ersten drei Spalten werden automatisch mit Daten aus der MySQL Datenbank gefüllt, das Script soll nun berechnen und die Zellen einfärben.
    Der Generierte VK soll durch den Wert in der Spalte „Unterbieten“ automatisch generiert werden.
    Beispiel bei POS. 1
    3,00 ist mein Verkaufspreis und der Mitbewerber nimmt 3,80 also Div. 0,70 € ausrechnen und grün darstellen.

    Bei Pos. 2 2,80 ist mein Verkaufspreis und der des Mitbewerbers 1,90 also schlecht da Min VK bei 2,80 liegt also bleiben und rot einfärben.


    Kann mir jemand anhand eines Codebeispieles erklären wie man so etwas macht ?

  • #2
    Das kannst Du entweder direkt in der SQL Abfrage berechnen, ungefähr so
    Code:
    IF(MinimumVK>MitbewerberVK,MinimumVK,(MitbewerberVK-Unterbieten)) AS 'Generierter VK'
    oder Du holst Dir erst mal nur die Werte aus der Datenbank und berechnest dann via PHP.
    [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

    Kommentar


    • #3
      Hey danke für deinen Tipp!
      Wie würde das in PHP aussehen ?
      Kannst du mir ein Codebeispiel geben den ich live testen kann ?

      Kommentar


      • #4
        Zitat von svenja-hh Beitrag anzeigen
        Hey danke für deinen Tipp!
        Wie würde das in PHP aussehen ?
        Kannst du mir ein Codebeispiel geben den ich live testen kann ?
        Zeige bitte mal Deinen Code, mit dem Du die Tabelle aktuell erzeugst. Bzw. schaue mal, wie Du vor oder während der Ausgabe den fehlenden Wert berechnen kannst.

        Code bitte mit PHP-Tags (siehe Editor dieses Website) einfügen.
        [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

        Kommentar


        • #5
          Zitat von drsoong Beitrag anzeigen
          Das kannst Du entweder direkt in der SQL Abfrage berechnen, ungefähr so
          Code:
          IF(MinimumVK>MitbewerberVK,MinimumVK,(MitbewerberVK-Unterbieten)) AS 'Generierter VK'
          oder Du holst Dir erst mal nur die Werte aus der Datenbank und berechnest dann via PHP.
          https://dev.mysql.com/doc/refman/8.0...ml#function_if
          Du berchnest Du via SQL ?

          Kommentar


          • #6
            So sieht meine Abfrage aus:


            PHP-Code:
            <?php
            function convertNumber($price) {
            $price str_replace(',''#'$price);
            $price str_replace('.'','$price);
            $price str_replace('#''.'$price);
            return 
            floatval($price);
            }
            header("Content-Type: text/html; charset=windows-1250");

            $dbConfig = array(
            "ip" => "XXXX",
            "user" => "XXXX",
            "pass" => "XXXX*_",
            "db" => "XXXX",
            );

            mysql_connect($dbConfig['ip'], $dbConfig['user'], $dbConfig['pass']) or die(mysql_error());
            mysql_select_db($dbConfig['db']) or die(mysql_error());

            $sql "SELECT * FROM testcalc";
            $query mysql_query($sql) or die(mysql_error());
            $vkIstKleiner false;

            echo 
            '<table border="0" style="font-family:Arial; font-size:10;">';


            echo 
            '<tr>';
            echo 
            '<th class="bg" align="left">MinimumVK</th>';
            echo 
            '<th class="bg">Unterbieten &nbsp</th>';
            echo 
            '<th class="bg" align="left">Mitbewerber VK</th>';
            echo 
            '<th class="bg">Generierter VK &nbsp </th>';
            echo 
            '<tr>';
            while(
            $fetch mysql_fetch_assoc($query)) {
            $vkIstKleiner convertNumber($fetch['preis']) < convertNumber($fetch['myvk']);
            echo 
            '<tr>';
            echo 
            '<td class="bg1">' $fetch['min'] . '</td>';
            echo 
            '<td class="bg1">' $fetch['unt'] . '</td>';
            echo 
            '<td class="bg1">' $fetch['mvk'] . '</td>';
            echo 
            '<td' . ($vkIstKleiner ' class="highlight"' '') . '>' $fetch['gvk'] . '</td>';
            echo 
            '</tr>';
            }
            ?>
            Die Daten werden mit einer Software direkt in die Datenbank geladen…

            Die Berechnung sollte irgendwie mit PHP umsetzbar sein, ich bekomme das aber einfach nicht auf die Reihe
            Wie mache ich das direkt in der SQL Abfrage ?

            Kommentar


            • #7
              Wie gesagt...
              Code bitte mit PHP-Tags (siehe Editor dieses Website) einfügen.
              Hm, ich darf mal vermuten, dass Softwareentwickler(in) nicht Dein Wunschberuf ist, sonst hättest Du Dich wohl etwas mehr reingehängt.

              In allen mir bekannten Programmier-, Skript- und Abfragesprachen kann man rechnen.
              Das Ganze läuft mit den üblichen Operatoren z. B. hier in PHP:
              PHP-Code:
              $x $a $b;
              echo 
              $x
              Du könntest also mit vorhandenen Werten vor der Ausgabe den zu Berechnenden ermitteln
              und den dann in die Ausgabe einbauen. Im Grunde steht alles schon da, Du musst es nur richtig
              zusammensetzen.

              Noch zwei allgemeine Hinweise:
              1. Die Nutzung der mysql Erweiterung in PHP ist nicht mehr empfehlenswert, da diese ab PHP 7 nicht mehr mit an Bord ist.
              2. SQL Abfragen mit "Select *" werden auch nicht empfohlen, da wenig performant. Sage lieber genau, was Du abfragen willst:
              SELECT feld1, feld3,feld8 FROM tabellen_namen...

              Und statt nur das Feld abzufragen (der SQL Ansatz), kannst Du das Ergebnis einer IF-Struktur abfragen. Wenn,Dann,Ansonsten. Siehe oben.

              [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

              Kommentar


              • #8
                PHP-Code:
                function convertNumber($price) {
                $price str_replace(',''#'$price);
                $price str_replace('.'','$price);
                $price str_replace('#''.'$price);
                return 
                floatval($price);

                Hiermit konvertierst du die Zahlen, die in einem falschen Format in der Datenbank stehen in das für Computer verständliche Format.
                Dann schreibst du
                Die Daten werden mit einer Software direkt in die Datenbank geladen…
                Da kommt man ja direkt ins Nachdenken. Ich kenne jedenfalls keine Software die so eklatante Fehler begeht, als dass sie Zahlenwerte in einem nicht für Datenbanken gedachten Format abspeichert.

                Magst du uns diesen Umstand mal erläutern?

                Kommentar


                • #9
                  Und warum entfernst du deine Inhalte?
                  Kein besonders sozialer Zug, angesichts der Mühe die sich hier manche geben.

                  Kommentar


                  • #10
                    [MOD: Beiträge wiederhergestellt, Thema geschlossen]
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar

                    Lädt...
                    X