Mysql||Fkasse

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
  • Abend,


    Ich habe einen Fehler bei meiner Fkasse... diese läuft über Mysql, der mysql_debug Modus sagt auch nichts besonderes. Ich lade sie und speichere sie, über einen Dialog kann ich einzahlen und auszahlen jedoch wird nichts gespeichert weder geladen...
    Hier die Codes :



    stock LoadiFrak()
    {
    for(new id; id < MAX_FRAKS; id++)
    {
    FInfo[id][iKasse] = mysql_GetInt("FInfo","iKasse","iFrak",FInfo[id][iFrak]);
    FInfo[id][iDrogen] = mysql_GetInt("FInfo","iDrogen","iFrak",FInfo[id][iFrak]);
    FInfo[id][iWaffen] = mysql_GetInt("FInfo","iWaffen","iFrak",FInfo[id][iFrak]);
    printf("||>>|| FInfo ||<<|| FInfo id : %d wurde folgendes geladen : Kasse %d, Drogen %d, Waffen %d",
    FInfo[id][iKasse],FInfo[id][iDrogen],FInfo[id][iWaffen]);
    }
    }


    stock SaveiFrak()
    {
    for(new id; id < MAX_FRAKS; id++)
    {
    new query[300];
    format(query,sizeof(query),"UPDATE `FInfo` SET `iKasse` = '%d', `iDrogen` = '%d' `iWaffen` = '%d' WHERE `iFrak` = '%d'",
    FInfo[id][iKasse],FInfo[id][iDrogen],FInfo[id][iWaffen],FInfo[id][iFrak]);
    }
    }



    Und die Tabellen ... :


    MFg
    Nightstr3am

    MFG

    Einmal editiert, zuletzt von Nightstr3am ()

  • stock SaveiFrak()
    {
    for(new id; id < MAX_FRAKS; id++)
    {
    new query[300];
    format(query,sizeof(query),"UPDATE `FInfo` SET `iKasse` = '%d', `iDrogen` = '%d' `iWaffen` = '%d' WHERE `iFrak` = '%d'",
    FInfo[id][iKasse],FInfo[id][iDrogen],FInfo[id][iWaffen],FInfo[id][iFrak]);
    }
    }
    mysql_query fehlt ?


    du formatierst einen text mit format und anschließend machst du nichts mehr D: du musst die abfrage auch noch mit der funktion mysql_query(query); absenden, sonst passiert garnichts


    ->
    stock SaveiFrak()
    {
    for(new id; id < MAX_FRAKS; id++)
    {
    new query[300];
    format(query,sizeof(query),"UPDATE `FInfo` SET `iKasse` = '%d', `iDrogen` = '%d' `iWaffen` = '%d' WHERE `iFrak` = '%d'",
    FInfo[id][iKasse],FInfo[id][iDrogen],FInfo[id][iWaffen],FInfo[id][iFrak]);
    mysql_query(query);
    }
    }

  • for(new id; id < MAX_FRAKS; id++)
    Deine Schleife fängt bei 0 an, deine Einträge in der Datenbank bei 1. Des Weiteren bin ich mir über den Sinn des Eintrags "id" nicht ganz bewusst. Wird dieser Wert überhaupt benötigt und wieso fängt er bei 220 an?


    FInfo[id][iKasse] = mysql_GetInt("FInfo","iKasse","iFrak",FInfo[id][iFrak]);
    FInfo[id][iFrak] wird in diesem Fall immer 0 sein, da kein Wert zugewiesen wurde. Versuch stattdessen id+1 zu verwenden.


    edit: Kleinigkeit verbessert :D

  • Mach das ganze mal so:
    stock LoadiFrak()
    {
    for(new id=1; id < MAX_FRAKS; id++)
    {
    FInfo[id][iKasse] = mysql_GetInt("FInfo","iKasse","iFrak",id);
    FInfo[id][iDrogen] = mysql_GetInt("FInfo","iDrogen","iFrak",id);
    FInfo[id][iWaffen] = mysql_GetInt("FInfo","iWaffen","iFrak",id);
    FInfo[id][iFrak] = id;
    printf("||>>|| FInfo ||<<|| FInfo id : %d wurde folgendes geladen : Kasse %d, Drogen %d, Waffen %d",
    FInfo[id][iFrak],FInfo[id][iKasse],FInfo[id][iDrogen],FInfo[id][iWaffen]);
    }
    }

  • [iFrak] ist eigentlich unnötig, da die ID gleichzeitig der Array-Index ist. Außerdem halte ich es für "unschön" einen Array zu erstellen und erst ab Index 1 zu verwenden. Falls der Wert von iFrak in der Tabelle nicht durch auto_increment zugewiesen wird, könntest du ihn auch bei 0 'starten' lassen, was dir das Laden erleichtern würde. Ich bin mir leider nicht sicher ob du den auto_increment Wert auch von 0 starten kannst.

  • leute Ihr stellt euch mit dem Laden an.



    for(new _i=1;_i<MAX_FRAKS;_i++)
    {
    new _query[128],_string[128];
    format(_query,sizeof(_query),"SELECT * FROM FInfo WHRE iFeak='%i'",_i);
    mysql_query(_query);
    mysql_store_result();
    while(mysql_fetch_row(_string,"|"))
    {
    sscanf(_string,"e<p<|>iii>",
    FInfo[_i][iKasse],
    FInfo[_i][iDrogen],
    FInfo[_i][iWaffen]);
    FInfo[_i][iFrak] = _i;
    printf("||>>|| FInfo ||<<|| FInfo id : %d wurde folgendes geladen : Kasse %d, Drogen %d, Waffen %d",FInfo[id][iFrak],FInfo[id][iKasse],FInfo[id][iDrogen],FInfo[id][iWaffen]);
    }
    }


    müsste so gehen, habe dir das gerade mal freihang gemacht.
    Dafür brauchste das gstylezz mysql plugin und sscanf.



    lg huGGy

  • huGGy:
    for(new _i=1;_i<MAX_FRAKS;_i++)
    wo wir wieder genau an dem Punkt wären, den ich vorher erläutert habe.
    FInfo[_i][iFrak] = _i;
    und das auch...


    Das Beste wäre meiner Meinung nach (sofern der auto_increment Wert sich nicht auf 0 setzen lässt)

    for(new id = 0; id < MAX_FRAKS; id++)
    // ...
    FInfo[id][iKasse] = mysql_GetInt("FInfo","iKasse","iFrak",id+1);
    // ...
    zu verwenden. Wobei du das beim Speichern dann auch machen musst:



    new query[128];
    format(query,sizeof(query),"UPDATE `FInfo` SET `iKasse` = '%d', `iDrogen` = '%d' `iWaffen` = '%d' WHERE `iFrak` = '%d'",
    FInfo[id][iKasse],FInfo[id][iDrogen], id+1);
    iFrak kannst du aus deiner Enum-Struktur löschen, da du eh keine Verwendung dafür hast. (Der Array-Index hat den gleichen Wert).
    Du musst nur beachten, dass die ID's in der Tabelle immer einen Wert höher sind (Arrays fangen bei 0 an, deine Einträge in der Tabelle bei 1), weshalb du +1 rechnen musst.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen