Announcement

Collapse
No announcement yet.

automatische Gebotserhöhung funktioniert nicht richtig...

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

  • automatische Gebotserhöhung funktioniert nicht richtig...

    Hallo in die Gemeinde,

    ich sehe gerade den Wald vor lauter Bäumen nicht mehr

    Vielleicht kann mir ja hier geholfen werden.

    Ausgangssituation:

    ich habe eine Tabelle :auk_pos mit folgenden (relevanten) Feldern:

    user_id summe aktuell
    18 850 850
    16 875 875

    Nun vergibt der User 18 ein automatisches Gebot mit dem Wert 1000.

    Die Tabelle sollte nun wie folgt erhöht werden:

    user_id summe aktuell
    18 1000 900
    16 875 875

    es wird aber nur wie folgt erhöht:
    user_id summe aktuell
    18 1000 875
    16 875 875

    Irgendwie stehe ich wie der berühmte Ochs vorm Berg und blicke im Moment nichts mehr.

    Ich hoffe ich habe mich verständlich ausgedrückt und mir kann jemand helfen.

    Danke im voraus!

    Folgenden Code verwende ich:
    PHP Code:
          if ($neuesgebot $zielgebot):

             
    ######################################
             #
             #  Berechnung der neuen Gebotshöhe / -user

             
    function bieten($var) {
             global 
    $aktuell;
             global 
    $schritt;
             global 
    $user;
                return((
    $var $schritt) > $aktuell);
             }

             
    $result0 mysql_query ("SELECT * FROM auk_gebote where aukpos_id ='$aukpos_id' order by aktuell DESC");
             
    $show0 mysql_fetch_row($result0);

             
    $aktuell $show0[7];
             
    $schritt $gebotsschritt;
             echo 
    "schritt: ".$schritt."<br>".$aktuell;

             
    // Alle Einträge ermitteln
             
    $sql="SELECT user_id, summe, aktuell FROM auk_gebote WHERE summe > ".$aktuell."";
             
    $rs mysql_query($sql);

             
    // Werte in Array schreiben
             
    for ($a 0$a mysql_num_rows($rs); $a++) {
                
    $user[mysql_result($rs$a"user_id")] = mysql_result($rs$a"summe");
             }

             
    // verbliebene Werte durchlaufen und summe (Max.-Gebot) erhöhen
             
    echo "anz. User: ".count($user)."<br>";
             while (
    count($user) > 1){
                
    $aktuell $aktuell $schritt;
                echo 
    "<br>neu aktuell: ".$aktuell."<br>";
                
    $user array_filter($user"bieten");
             }

             
    // das Höchstgebot dem Höchstbietenden zuordnen
             
    $user array_keys($user);
             
    $high_user $user[0];

             
    // Daten in Tabelle schreiben
             
    $sql "UPDATE auk_gebote SET aktuell = ".$aktuell." WHERE user_id='".$high_user."'";
             
    mysql_query($sql);

             
    # Ende der Berechnung
             #
             ######################################
          
    endif; 
    .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
    Frank

  • #2
    Welchen Wert hat

    $schritt = $gebotsschritt;


    Christian

    Comment


    • #3
      Hallo Christian,

      $gebotsschritt=25

      Frank
      .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
      Frank

      Comment


      • #4
        Dann ist das doch richtig. Warum sollte 900 drin stehen..
        Christian

        Comment


        • #5
          weil er automatisch alle vorhandenen Gebote überbieten soll...
          (also auch das gebot von User 16 mit 875)

          Frank
          .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
          Frank

          Comment


          • #6
            WHERE summe > ".$aktuell."";

            875 des User 16 ist aber nicht größer als 875 des User 15....

            >=

            sollte die Lösung sein
            Christian

            Comment


            • #7
              autsch ...

              Danke Christian, das passt
              .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
              Frank

              Comment

              Working...
              X