Gesucht: Script zur Anpassung von Angebot und Nachfrage

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gesucht: Script zur Anpassung von Angebot und Nachfrage

    Hallo euch allen,

    derzeit stehe ich vor einem komplexen Problem, zu dem ich kein passendes Script finde.

    Es gibt zwei Summen, einmal "Angebot" und einmal "Nachfrage". Beide bestehen in Tabelleneinträgen mit einer Benutzer-ID, einer Menge und einem TIMEDATE.
    Erreicht werden soll, dass, wenn z.B. das "Angebot" größer ist als die "Nachfrage", der früheste Eintrag in Angebot zugeschnitten wird, damit das "Angebot" der "Nachfrage" 1:1 entspricht.
    Es kann natürlich auch sein, dass trotz des Weglassens des frühesten Eintrages das "Angebot" noch nicht an die "Nachfrage" angeglichen wurde. Entsprechend würde der früheste Eintrag ausscheiden und der jeweils passende Eintrag in der Summe "Angebot", sei es auch der dritt- oder viertfrüheste, angepasst, so dass er vielleicht auch mit "nur" 0,6xMenge gerechnet wird.

    Ich hoffe, dass man versteht, was ich damit meine. Im Grunde ist es wie das Lager eines Markthändlers, der vielleicht nicht alles verkaufen kann. Demnach eine Anpassung des Lagers, nur eben sortiert nach dem jüngsten Datum alá "Wer zuerst kommt, malt zuerst."

    Meinen Dank im Vorraus, wenn jemand Rat und Hilfe weiß.

    Grüße

  • #2
    Also ganz verstanden habe ich dich nicht.

    Aber im Scriptgesuche-Forum bist du definitiv falsch! Das ist ein Fall für Individualprogrammierung.

    Comment


    • #3
      Hallo TobiaZ,
      danke für den Hinweis. Könntest du den Thread vllt verschieben in das passende Forum - welches das PHP-Developer-Forum sein müsste?

      Das wäre nett.
      Grüße

      Comment


      • #4
        Da im Moment noch kein PHP-Problem zu erkennen ist, verschiebe ich mal nach Projekthilfe.

        Wenn du ein konkretes Problem schilderst, kann ich das gerne nochmals korrigieren.

        Comment


        • #5
          Servus,
          ein wenig habe ich an dem Code gearbeitet. Aber ich gestehe, dass nicht viel rauskam, da ich das bereits beschriebene Problem habe. Wie ich was vorhabe, beschreiben die Notizen im PHP-Bereich am Besten.

          Kleine Anmerkung: "GetYoungestEntry" soll erst einmal nur ein Platzhalter sein und soll von mir später bearbeitet werden, wenn das gröbste gelöst wurde.

          PHP Code:
          $sell "SUM(IF(ex_transfer.Order=2,stockcount,0))";
          $buy  "SUM(IF(ex_transfer.Order=1,stockcount,0))";

          IF (
          $sell>$buy) ($bigsum=$sell&&$smallsum=$buy) ELSEIF ($buy>$buy) ($bigsum=$buy&&$smallsum=$sell) ELSE 1;
          $ye GetYoungestEntry($bigsum)
          IF (
          $bigsum-$ye) != $smallsum) ($ueberschuss $bigsum-$ye-$smallsum)
          IF (
          $ueberschuss>$ye) ($ye =

          //WENN $BIGSUM-$YE > SMALLSUM
          //DANN $BIGSUM-$YE-$SMALLSUM = Ueberschuss
          //WENN UEBERSCHUSS > $YE
          //DANN $YE = 0 per UPDATE UND $YE+1
          //$YE +1 sei nächster Eintrag
          //DANN $BIGSUM-$YE-$SMALLSUM = Ueberschuss
          //WENN UEBERSCHUSS < $YE
          //DANN RATE = UEBERSCHUSS/$YE * $YE
          //DANN UPDATE des entsprechenden Eintrages per RATE 
          Anhand der Notizen kann man, wie ich hoffe, gut erkennen, wo ich gerade stecke.
          Vielleicht weiß jemand Rat.

          Dank im Vorraus und ein netter Gruß

          Comment


          • #6
            Nabend oder guten Morgen, wie dem auch sei.

            Um keinen neuen Thread zum Thema "unexpected" zu öffnen, würde ich mich (un)gerne einreihen und zur Fehlermeldung

            "Parse error: syntax error, unexpected '=', expecting '}' in meinehomepage on line 27"

            den Code nachliefern.

            PHP Code:
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
            <html>
            <head>
            <title>versuch</title>
            <meta name="author" content="CK">
            <meta name="editor" content="html-editor phase 5">
            </head>
            <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
            <?php
            mysql_connect
            ("localhost","user","passwort");
            mysql_select_db("database");

                     
            $summen "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 ".
                               
            "FROM ex_transfer ".
                               
            "GROUP BY ex_transfer.stockprice";

                     
            $result mysql_query($summen) or die(mysql_error());
                     WHILE(
            $row mysql_fetch_array($result)) {

                     
            $sell $row['sell'];
                     
            $buy $row['buy'];

                     IF (
            $row['buy']>$row['sell']) {$maximum =  $row['sell'];} ELSE {$maximum =  $row['buy'];}

                     
            $part "SELECT ex_transfer.stock_id AS stock_id, ex_transfer.stockprice AS stockprice, ".
                             
            "SUM(WHILE(IF($row[buy]>$row[sell]){$maximum=$row[sell]} ELSE {$maximum=$row[buy]}<=$maximum) ".
                             
            "{ex_transfer.Order=IF($row[buy]>$row[sell]) {2} ELSE {1}}) AS produkt ".
                             
            "FROM ex_transfer ".
                             
            "GROUP BY ex_transfer.stockprice";

                     
            $res2 mysql_query($part) or die(mysql_error());
                     WHILE(
            $row1 mysql_fetch_array($res2)) {

                      echo 
            $row1['id']. " / "$row1['nick']. " / "$row1['produkt'];
                    }
            ?>
            </body>
            </html>
            Ich hoffe, es ist einigermaßen einsehnlich. Es ist mir bekannt, dass man solche Codes eigentlich einsehnlich umschreibt. Allerdings - wohl sehe ich dies nur alleine so - würde es in diesem Fall etwas uneinsehnlicher bzw. komplizierter, was dieser Code sowieso schon ist.

            Kurze Erklärung zum Code an sich: Bezüglich meines im Thread beschriebenen Problems habe ich eine Idee gehabt, in welcher der kleinste Wert, z.B. Sell, in eine While-Schleife eingefügt wird und dann die Werte für Kaufaufträge solange summiert werden, bis das Maximum erreicht wird.

            Zum Problem: Die Fehleranzeige verstehe ich zwar und ich vermute den Fehler hier,

            PHP Code:
            {$maximum=$row[sell]} ELSE {$maximum=$row[buy]} 
            allerdings würde dies doch keinen Sinn machen, da sonst die Funktion nicht funktionsfähig wäre.

            Desweiteren bitte ich um Entschuldigung, dass der Code dermaßen auswuchert. Das Grundproblem ist leider nicht weniger schwer.

            Grüße
            krampi

            Comment


            • #7
              Lies im Handbuch das Kapitel über Strings. Da steht, dass Variablen ersetzt werden. Über das Auswerten von Code steht da nichts. Klartext: kein if-else in Strings!

              Außerdem vermisse ich beim Überfliegen deines Codes eine schließende }.

              Comment

              Working...
              X