Datenbank fehler ?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag,


    Und zwar möchte den Ablauf immer Minus 1 setzen es klappt soweit alles.


    Ich habe 3 Einträge in der Datenbank und es wird die ID 0 nur Minus 1 gesetzt die anderen bleiben unverändert.



    Code:


    mysql_format(myCon,query,sizeof(query),"SELECT * FROM `css_server_gutscheine` WHERE `Ablauf` > '0'");
    mysql_pquery(myCon,query,"UpdateServerSekunde");



    public UpdateServerSekunde()
    {
    new rows,query[256];
    cache_get_row_count(rows);
    for(new i=0;i<rows;i++)
    {
    if(Gutschein[i][gEingeloest] == 0)
    {
    new zeit,user_id;
    cache_get_value_name_int(i,"ID",user_id);
    cache_get_value_name_int(i,"Ablauf",zeit);
    if(zeit == 0)return 1;
    zeit--;
    mysql_format(myCon,query, sizeof(query),"UPDATE `css_server_gutscheine` SET `Ablauf` = '%d' WHERE `ID` = '%d'",zeit,i);
    mysql_pquery(myCon,query);
    return 1;
    }
    }
    return 1;
    }



    Hoffe es kann mir jemand helfen. :thumbdown:


    @Jeffry @Kaliber

    • Offizieller Beitrag

    Du verwendest an zwei Stellen in der Schleife ein return 1; Ich denke mal, dass dies die Schleife unterbricht.
    Das heißt für dich einfach nur, dass erste return 1; zu continue; ändern und das zweite einfach entfernen.


    Weiterhin solltest du darauf achten, dass die Variable i nicht immer in der Tabelle i ist, somit einfach die Variable user_id verwenden.