Von Mysql zu Sqlite

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
  • Hallo Leute
    Ich hab da mal nen Problem, und zwar habe ich da drei Funktionen die auf MySql geskriptet wurden, ich habe bereits einige tuts durch, und soweiter
    aber es klappt einfach nicht.
    Funktion Speichern, die Datenbank ist vorhanden, die Tabelle wirt erstellt wenn sie nicht da ist. Ich habe selber schon probiert, aber ich bekomme mysql oder sqlite einfach nich inne birne^^ schnall ich nicht, daher brauch ich eure Hilfe
    das ist die Original Save funktion
    public SaveGangZone()
    {
    new sql[600];
    if(sBlitzerNum != 0)
    {
    for(new idx=0;idx < GangZoneNum; idx ++)
    {
    if(GangZone[idx][gzAk] == 1)
    {
    if(GangZone[idx][gzId] == 0)
    {
    format(sql,sizeof(sql),"INSERT INTO `Gangzones` (`Name`, `PosMinX`, `PosMaxX`) VALUES ('%s', '%f', '%f');",
    GangZone[idx][gzName],
    GangZone[idx][gzPosMinX],
    GangZone[idx][gzPosMaxX]);
    mysql_query_fix(sql);


    new str[20];
    format(sql,sizeof(sql),"SELECT `id` FROM `Gangzones` WHERE `Name` = '%s' ORDER BY `id` DESC",GangZone[idx][gzName],GangZone[idx][gzPosMinX],GangZone[idx][gzPosMaxX]);
    mysql_query_fix(sql);
    mysql_store_result_fix();
    mysql_retrieve_row_fix();
    mysql_fetch_field_row_f(str,"id");
    GangZone[idx][gzId] = strval(str);
    mysql_free_result_fix();
    }
    UpdateFloat("Gangzones","PosMinX",GangZone[idx][gzPosMinX],GangZone[idx][gzId]);
    UpdateFloat("Gangzones","PosMinY",GangZone[idx][gzPosMinY],GangZone[idx][gzId]);
    UpdateFloat("Gangzones","PosMaxX",GangZone[idx][gzPosMaxX],GangZone[idx][gzId]);
    UpdateFloat("Gangzones","PosMaxY",GangZone[idx][gzPosMaxY],GangZone[idx][gzId]);
    UpdateFloat("Gangzones","PosZ",GangZone[idx][gzPosZ],GangZone[idx][gzId]);
    UpdateInt("Gangzones","Gangid",GangZone[idx][gzGang],GangZone[idx][gzId]);
    UpdateInt("Gangzones","Time",GangZone[idx][gzTime],GangZone[idx][gzId]);
    UpdateInt("Gangzones","LastAttack",GangZone[idx][gzLastAttack],GangZone[idx][gzId]);
    }
    }
    }
    return 1;
    }


    Als ich versucht habe das umzuschreiben, mit hilfe eines Tut's wurde zwar gespeichert, aber es wurde doppelt und dreifach gespeichert, so das dann anstadt einem eintrag dann auf einmal 5 von der gleichen sorte da waren




    Das Nächste ist das Laden, dadrann habe ich mich noch nicht versucht, da ich beim Speichern schon versagt hatte
    Hier die Funktion
    public LoadGangZone()
    {
    new arrCoords[10][64];
    new strFromFile2[256];
    new sql[250];


    for(new i=0; i<sizeof(GangZone);i++)
    {
    if(GangZone[i][gzAk]==1){DestroyGangZone(i);}
    GangZone[i][gzAk]=0;
    GangZone[i][gzId]=0;
    }


    format(sql,sizeof(sql),"SELECT * FROM `Gangzones`");
    mysql_query_fix(sql);
    mysql_store_result_fix();
    if(mysql_num_rows_fix() != 0)
    {
    new idx = 0;
    while(mysql_fetch_row_format_f(strFromFile2,","))
    {
    split(strFromFile2, arrCoords, ',');


    GangZone[idx][gzId] = strval(arrCoords[0]);
    strmid(GangZone[idx][gzName], arrCoords[1], 0, strlen(arrCoords[1]), 255);
    GangZone[idx][gzPosMinX] = floatstr(arrCoords[2]);
    GangZone[idx][gzPosMinY] = floatstr(arrCoords[3]);
    GangZone[idx][gzPosMaxX] = floatstr(arrCoords[4]);
    GangZone[idx][gzPosMaxY] = floatstr(arrCoords[5]);
    GangZone[idx][gzPosZ] = floatstr(arrCoords[6]);
    GangZone[idx][gzGang] = strval(arrCoords[7]);
    if(!IsFrakAGang(GangZone[idx][gzGang])){GangZone[idx][gzGang] = 0;}
    GangZone[idx][gzTime] = strval(arrCoords[8]);
    GangZone[idx][gzLastAttack] = strval(arrCoords[9]);
    GangZone[idx][gzAk] = 1;
    GangZone[idx][gzAttacker] = 0;
    CreateGangZone(idx);
    idx++;
    }
    GangZoneNum=idx;
    }
    mysql_free_result_fix();
    return 1;
    }




    Das Dritte währe das Löschen eines Eintrages
    Hier die Funktion
    stock DeleteGangZone(gzid)
    {
    if(GangZone[gzid][gzAk])
    {
    new sql[250];
    DestroyGangZone(gzid);
    GangZone[gzid][gzAk] = 0;
    format(sql,sizeof(sql),"DELETE FROM `Gangzones` WHERE `id` = %d",GangZone[gzid][gzId]);
    mysql_query_fix(sql);
    GangZone[gzid][gzId] = 0;
    }
    }





    Würde mich sehr Freuen wenn das Jemand mit Ahnung so umschreibt das es auch klappt, wie gesagt ich habe keine ahnung von Mysql oder sqlite daher wende ich mich jetz an euch
    Villeicht giebs nen Pro unter euch der mir das umschreiben kann


    Und wenn Fragen kommen, warum nicht auf Mysql umsteigen, klare antwort, verstehe ich nicht^^

  • genau mit dem Tut hab ich es versucht zu machen, aber da ich es von vorne bis hinten einfach nicht verstehe, (habe wohl meine lernfähigkeit durch) frage ich ja hier ob mir das jemand umschreibt, würde ich es selber verstehen wie und was, etz, würde ich dieses thema nicht starten