Ankündigung

Einklappen
Keine Ankündigung bisher.

Insert Into mit Rechenergebnissen und Tabelleninhalten

Einklappen

Neue Werbung 2019

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

  • Insert Into mit Rechenergebnissen und Tabelleninhalten

    Hallo PHP-Gemeinde,

    nun bin ich zu INSERT INTO vorgedrungen, was ich für ein Login-System bereits hatte ausprobieren können.

    Jetzt wird es aber für mich schwierigier.

    Ich möchte Daten in einer Table ex_calc eintragen, wobei 4 der insgesamt 6 Einträge - sell, buy, kurstest und umsatz - vorher errechnet werden.

    PHP-Code:
    INSERT INTO ex_calc (stock_idstockpricesellbuykurstestumsatz
    Allerdings kenne ich INSERT INTO nur so, dass die Daten aus Feldern (Type-In-Fields) und eben aus Tabellen übernommen würden. Doch wie ist es mit errechneten Zahlen?

    Aus diesem folgenden Code die Ergebnisse (Echo diente lediglich der Richtigkeitsüberprüfung der Daten) sollen über INSERT INTO in eine Tabelle ex_calc fließen.
    PHP-Code:
    $berechnung "SELECT ex_transfer.stock_id, ex_transfer.stockprice, SUM(IF(ex_transfer.Order=2,stockcount,0)) AS sell, SUM(IF(ex_transfer.Order=1,stockcount,0)) AS buy ".
              
    "FROM ex_transfer ".
              
    "GROUP BY ex_transfer.stockprice";

    $result mysql_query($berechnung) or die(mysql_error());
    WHILE(
    $row mysql_fetch_array($result)){
            
    $kurstest $row['buy']-$row['sell'];

            echo 
    $row['stock_id']. " / "$row['stockprice']. " / "$row['sell']. " / "$row['buy']. " / "$kurstest" / ";
            IF (
    $kurstest<0) {echo $row['buy'];} ELSEIF ($kurstest>0) {echo $row['sell'];} ELSEIF ($kurstest==0) {echo $row['sell'];} 
    Wie bereits erwähnt plagt mich primär, dass ja sowohl DB-Tabellen-Ergebnisse wie auch Summen eingefügt werden.

    Ich danke für Tipps und Hinweise und bitte um Verzeihung für mein Nichtiwssen - aber wie in einem Thread erwähnt, habe ich mich selbst in einen Crashkurs geworfen und habe noch ein paar Lücken.
    Crossposting ist kein Verstoß, sondern der Vergleich mehrerer Lösungsvorschläge.

  • #2
    Zitat von krampi Beitrag anzeigen
    Aus diesem folgenden Code die Ergebnisse (Echo diente lediglich der Richtigkeitsüberprüfung der Daten) sollen über INSERT INTO in eine Tabelle ex_calc fließen.
    Aus deiner halboffenen While-Schleife erkenne ich nur, dass du aus der vorangegangenen Datenbankabfrage $kurstest = $row['buy']-$row['sell']; berechnest.
    Vermutlich genügt dazu ein UPDATE.
    Kannst du dein Vorhaben genauer erklären?

    Kommentar


    • #3
      Zitat von krampi Beitrag anzeigen
      Allerdings kenne ich INSERT INTO nur so, dass die Daten aus Feldern (Type-In-Fields) und eben aus Tabellen übernommen würden. Doch wie ist es mit errechneten Zahlen?
      Was meinst du damit? Du kannst "alles" per INSERT einfügen. Welche Werte erlaubt sind, hängt von der Tabellen-Struktur haben (verwendete Datentypen).
      [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
      [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

      Kommentar


      • #4
        Klingt für mich auch etwas schwammig.
        Hört sich an, als wenn Du einfach Berechnungen durchführst und die Ergebnisse in eine Tabelle per Insert eintragen willst?!
        Da sehe ich aber dann die Problemstellung nicht...

        Sorry, kannst das etwas genauer erklären, bitte?!

        EDIT
        Wenn Du es so meinst, wie's mir grad gekommen ist (unglücklich formuliert...), könnte SELECT INTO Dich weiter bringen.
        ABER: Ohne gewähr, weil ich nicht weiß, ob ich Dich verstanden habe...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Halli hallo und einen schönen guten Morgen,

          bitte verzeiht meine schwammige Ausdrucksweise. Erklären ist bei mir immer etwas problematisch.

          Also im obrigen Beispiel werden ja unter anderem Stock_ID und Stockprice aus der Tabelle ex_transfer gesucht, dazu passend per SUM die Ergebnisse $Buy und $Sell und $kurstest als Ergebnis von
          PHP-Code:
          IF ($kurstest<0) {echo $row['buy'];} ELSEIF ($kurstest>0) {echo $row['sell'];} ELSEIF ($kurstest==0) {echo $row['sell'];} 

          Das Vorhaben sieht vor, dass eben die Ergebnisse von stock_id, stockprice, $Buy, $Sell und $Kurstest per INSERT INTO in die Tabelle ex_calc übertragen werden.

          Jetzt bleibt zu hoffen, dass ich mich gut ausdrücken konnte. In Zukunft werde ich üben, besser zu beschreiben.

          Danke nochmal an euch, dass ihr mir Hinweise geben wollt.
          Crossposting ist kein Verstoß, sondern der Vergleich mehrerer Lösungsvorschläge.

          Kommentar


          • #6
            Bitte verzeiht den Doppelpost. Habe ein Script erstellt, um Daten in die Tabelle zu schreiben, aber es ist wohl ein Fehler drin. Zumindest gibt es einen Tabelleneintrag.

            Wo ist der grundlegende Fehler???

            PHP-Code:


            $eintrag 
            "INSERT INTO ex_calc (stock_id, stockprice, sell, buy, kurstest) ".
                       
            "SELECT ex_transfer.stock_id AS stock_id, ex_transfer.stockprice AS stockprice, SUM(IF(ex_transfer.Order=2,stockcount,0)) AS sell, SUM(IF(ex_transfer.Order=1,stockcount,0)) AS buy, IF(SELL>BUY) {BUY;} ELSEIF(SELL<BUY) {SELL;} ELSEIF(SELL==BUY) {SELL;} AS kurstest ".
                       
            "FROM ex_transfer ";


            $eintragen mysql_query($eintrag);

            if(
            $eintragen == true)
               {
               echo 
            "Eintrag war erfolgreich";
               }
            else
               {
               echo 
            "Fehler beim Speichern";
               } 
            Crossposting ist kein Verstoß, sondern der Vergleich mehrerer Lösungsvorschläge.

            Kommentar


            • #7
              mysql_error
              [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

              Kommentar

              Lädt...
              X