MySQL Errors

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
  • Ich habe in der mysql log nun folgende stehen



    Code denn das betreffen könnte:
    public LoadBusinesses()
    {
    new num_felder,num_reihen;
    cache_get_data(num_felder,num_reihen,dbhandle);
    if(!num_reihen)return 1;
    for(new i = 0; i < num_reihen; i++)
    {
    new BizName[24], string[128];
    bInfo[i][b_id] = cache_get_field_content_int(i,"ID",dbhandle);
    bInfo[i][b_preis] = cache_get_field_content_int(i,"Preis",dbhandle);
    bInfo[i][b_enterx] = cache_get_field_content_float(i,"EnterX",dbhandle);
    bInfo[i][b_entery] = cache_get_field_content_float(i,"EnterY",dbhandle);
    bInfo[i][b_enterz] = cache_get_field_content_float(i,"EnterZ",dbhandle);
    bInfo[i][b_exitx] = cache_get_field_content_float(i,"ExitX",dbhandle);
    bInfo[i][b_exity] = cache_get_field_content_float(i,"ExitY",dbhandle);
    bInfo[i][b_exitz] = cache_get_field_content_float(i,"ExitZ",dbhandle);
    bInfo[i][b_interior] = cache_get_field_content_int(i,"Interior",dbhandle);
    bInfo[i][b_world] = cache_get_field_content_int(i,"World",dbhandle);
    bInfo[i][b_minuten] = cache_get_field_content_int(i,"Minuten",dbhandle);
    bInfo[i][b_geld] = cache_get_field_content_int(i,"Geld",dbhandle);
    bInfo[i][b_job] = cache_get_field_content_int(i,"JobID",dbhandle);
    cache_get_field_content(i,"Text",bInfo[i][b_text],dbhandle,128);
    cache_get_field_content(i,"Besitzer",bInfo[i][b_besitzer],dbhandle,128);


    format(BizName, 24, "%s", bInfo[i][b_text]);
    strreplace(BizName, '_', ' ');
    if(!strcmp(bInfo[i][b_besitzer], "None", false))
    {
    format(string, sizeof string,"%s \n[Kein Besitzer]\nPreis: %i$", BizName, bInfo[i][b_preis]);
    }
    else format(string, sizeof string, "%s\n[Besitzer]: %s\nTippe /enter um die Firma zu betreten", bInfo[i][b_text], bInfo[i][b_besitzer]);
    bInfo[i][b_label] = CreateDynamic3DTextLabel(string, GRÜN, bInfo[i][b_enterx],bInfo[i][b_entery], bInfo[i][b_enterz], 12, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1);
    bInfo[i][b_pickup] = CreateDynamicPickup(1272, 1, bInfo[i][b_enterx], bInfo[i][b_entery], bInfo[i][b_enterz], 0);
    if(IsBusinessOwned(i)) printf("Firmen ID %i wurde geladen; Name: %s", i, bInfo[i][b_text]);
    }
    return 1;
    }


    public LoadJob()
    {
    new num_felder,num_reihen;
    cache_get_data(num_felder,num_reihen,dbhandle);
    if(!num_reihen)return 1;
    for(new i = 0; i < num_reihen; i++)
    {
    new JobName[24], string[128];
    jInfo[i][j_id] = cache_get_field_content_int(i,"ID",dbhandle);
    jInfo[i][j_gehalt] = cache_get_field_content_int(i,"Gehalt",dbhandle);
    jInfo[i][j_x] = cache_get_field_content_float(i,"X",dbhandle);
    jInfo[i][j_y] = cache_get_field_content_float(i,"Y",dbhandle);
    jInfo[i][j_z] = cache_get_field_content_float(i,"Z",dbhandle);
    cache_get_field_content(i,"Name",jInfo[i][j_name],dbhandle,90);


    format(JobName, 24, "%s", bInfo[i][b_text]);
    strreplace(JobName, '_', ' ');
    format(string, sizeof string, "Um den Job '%s' anzunehmen\nTippe /annehmen job ein", jInfo[i][j_name]);
    bInfo[i][b_label] = CreateDynamic3DTextLabel(string, HBLAU, jInfo[i][j_x],jInfo[i][j_y], jInfo[i][j_z], 40, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1);
    bInfo[i][b_pickup] = CreateDynamicPickup(1239, 1, jInfo[i][j_x], jInfo[i][j_y], jInfo[i][j_z], 0);
    printf("Job ID %i wurde geladen; Name: %s", i, jInfo[i][j_name]);
    }
    return 1;
    }
    public OnPlayerCarsLoad(playerid)
    {
    new num_felder,num_reihen;
    cache_get_data(num_felder,num_reihen,dbhandle);
    if(!num_reihen)return 1;
    for(new i = 0; i< num_reihen; i++)
    {
    new id = getFreeCarID();
    cInfo[id][c_modelid] = cache_get_field_content_int(i,"modelid",dbhandle);
    cInfo[id][c_besitzer] = cache_get_field_content_int(i,"besitzer",dbhandle);
    cInfo[id][c_x] = cache_get_field_content_float(i,"x",dbhandle);
    cInfo[id][c_y] = cache_get_field_content_float(i,"y",dbhandle);
    cInfo[id][c_z] = cache_get_field_content_float(i,"z",dbhandle);
    cInfo[id][c_r] = cache_get_field_content_float(i,"r",dbhandle);
    cInfo[id][db_id] = cache_get_field_content_int(i,"id",dbhandle);
    cInfo[id][c_id]=CreateVehicle(cInfo[id][c_modelid],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],-1,-1,-1);
    }
    return 1;
    }
    SpielerLaden(playerid)
    {
    new num_felder,num_reihen;
    cache_get_data(num_felder,num_reihen,dbhandle);
    //Laden
    sInfo[playerid][eingeloggt] = 1;
    sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
    sInfo[playerid][adminlevel] = cache_get_field_content_int(0,"adminlevel",dbhandle);
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    sInfo[playerid][geld] = cache_get_field_content_int(0,"geld",dbhandle);
    sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
    sInfo[playerid][frang] = cache_get_field_content_int(0,"frang",dbhandle);
    sInfo[playerid][skin] = cache_get_field_content_int(0,"skin",dbhandle);
    sInfo[playerid][wanted] = cache_get_field_content_int(0,"wanted",dbhandle);
    sInfo[playerid][payday] = cache_get_field_content_int(0,"payday",dbhandle);
    //Umsetzen
    SetPlayerSkin(playerid,sInfo[playerid][skin]);
    SetPlayerMoney(playerid,sInfo[playerid][geld]);
    SetPlayerScore(playerid,sInfo[playerid][level]);
    return 1;
    }
    public OnFraktionLaden()
    {
    new num_felder,num_reihen;
    cache_get_data(num_felder,num_reihen,dbhandle);
    if(!num_reihen)return 1;
    for(new i = 0; i< num_reihen; i++)
    {
    new des[128];
    fInfo[i][f_id] = cache_get_field_content_int(i,"id",dbhandle);
    fInfo[i][f_name] = cache_get_field_content(i,"name",des,dbhandle);
    fInfo[i][f_x] = cache_get_field_content_float(i,"x",dbhandle);
    fInfo[i][f_y] = cache_get_field_content_float(i,"y",dbhandle);
    fInfo[i][f_z] = cache_get_field_content_float(i,"z",dbhandle);
    fInfo[i][f_inter] = cache_get_field_content_int(i,"interior",dbhandle);
    fInfo[i][f_skin] = cache_get_field_content_int(i,"skin",dbhandle);
    fInfo[i][f_kasse] = cache_get_field_content_int(i,"kasse",dbhandle);
    printf("Fraktion ID: %i geladen",fInfo[i][f_id]);
    }
    return 1;
    }


    Wie kann ich solche Fehler vermeiden? wie erkennen ich sie? in der Log steht nie eine Zeile oder sonstiges

  • Wie rufst du die auf?
    Du darfst nicht einfach z.b. "OnFraktionLaden();" in OnGameModeInit schreiben.


    Musst du dann so z.b. machen:


    Code
    mysql_pquery(handle, "SELECT * FROM `DEINETABELLE`", "OnFraktionLaden");

    So blöd bin ich nicht :D


    die werden mit einer mysql_tquery im OnGameModeInit aufgerufen so wie du es beschrieben hast.

  • Hast ja nicht geschrieben wie du die aufrufst, deswegen lieber nachfragen. :D


    Ich weiß nicht, ob das einen unterschied macht, aber du hast das so:
    cache_get_data(FIELDS, ROWS);
    und in der Wiki steht:
    cache_get_data(ROWS, FIELDS);


    Sonst weiß ich auch nicht weiter.

  • Sollte eig nicht daran liegen also die ersten Fehler sind aufgrund das er mehr als Vorhanden "Laden will" aber die wo er die Cache nicht lesen kann das ist aktuell mein dilema vor paar stunden ging es noch xD


    um zu testen hab ich cache_get_data auch mal rausgenommen trotzdem bleiben die fehler gleich


    EDIT: Er sagt auch ganze zeit das es kein aktiver Cache gibt dem er was übergeben kann. Verstehe das irgendwie nicht ganz :/
    EDIT2: @Jeffry

    Einmal editiert, zuletzt von MnX ()

  • @MnX
    Weißt du zufällig, bei welchem Code welche Fehlermeldungen ausgegeben werden?


    Das mit dem SpielerLaden(playerid) sieht mir schon komisch aus. Kannst du mir mal zeigen, wie du SpielerLaden(playerid) aufrufst? ;)

  • @MnX
    Weißt du zufällig, bei welchem Code welche Fehlermeldungen ausgegeben werden?


    Das mit dem SpielerLaden(playerid) sieht mir schon komisch aus. Kannst du mir mal zeigen, wie du SpielerLaden(playerid) aufrufst? ;)

    Das Problem taucht nur beim Biz und Job Laden auf sonst Läd er alles aber hier vllt findest du ja was


    public OnPasswordResponse(playerid)
    {
    new num_felder,num_reihen;
    cache_get_data(num_felder,num_reihen,dbhandle);
    if(num_felder == 1)
    {
    SpielerLaden(playerid);
    SpielerCarsLaden(playerid);
    SpawnPlayer(playerid);
    UpdateDraw(playerid);
    }
    else
    {
    new text[128];
    SendClientMessage(playerid,ORANGE,"Dein Passsword ist falsch.");
    format(text, sizeof text, "Herzlich Willkommen zurück {006CC4}%s\n Bitte logge dich ein",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",text,"Einloggen","Abbrechen");
    }
    return 1;
    }


    Der Public wird ausgeführt wenn das Passwort richtig eingegeben wurde

  • Die ist ja direkt nach dem der Server start bedeutet es ist eine "Frische" Log

    Klar, aber ich meine mit allem drum und dran, geht mir darum um zu sehen, ob auch alles geht.
    Poste am besten noch ein Abbild der Datenbank (nicht die Einträge, die Struktur).
    Wäre ich keine 1600 km von DE weg, hätte ich eventuell produktiver helfen können, sry ^^

  • Klar, aber ich meine mit allem drum und dran, geht mir darum um zu sehen, ob auch alles geht.Poste am besten noch ein Abbild der Datenbank (nicht die Einträge, die Struktur).
    Wäre ich keine 1600 km von DE weg, hätte ich eventuell produktiver helfen können, sry ^^

    Die Struktur stimmt überall also kannst die vom code schon abgelesen hab es nach geschaut

  • Ich weiß nicht genau, ob man cache_get_field_content_int in der Funktion verwenden kann, wenn man die Funktion im public von der Query steht. Zur Not würde ich es einfach so schreiben:


    Kannst du uns mal zeigen, wie du die beiden Teile (das Laden von den Jobs und Bizzes) aufrufst? Ich denke mal in OnGameModeInit, dann am besten einfach alles davon. ;)

  • Ich weiß nicht genau, ob man cache_get_field_content_int in der Funktion verwenden kann, wenn man die Funktion im public von der Query steht. Zur Not würde ich es einfach so schreiben:


    Kannst du uns mal zeigen, wie du die beiden Teile (das Laden von den Jobs und Bizzes) aufrufst? Ich denke mal in OnGameModeInit, dann am besten einfach alles davon. ;)

    mysql_tquery(dbhandle,"SELECT * FROM fraktion","OnFraktionLaden","","");
    mysql_tquery(dbhandle,"SELECT * FROM firma","LoadBusinesses","","");
    mysql_tquery(dbhandle,"SELECT * FROM job","LoadJobs","","");


    Die Public stehen oben ;)

  • C
    mysql_tquery(dbhandle,"SELECT * FROM fraktion","OnFraktionLaden","");
    mysql_tquery(dbhandle,"SELECT * FROM firma","LoadBusinesses","");
    mysql_tquery(dbhandle,"SELECT * FROM job","LoadJobs","");

    Die Anführungszeichen gehören da nicht hin.
    Probiere das mal so.


    Die drei Zeilen stehen aber nach mysql_connect, oder? ;)

  • C
    mysql_tquery(dbhandle,"SELECT * FROM fraktion","OnFraktionLaden","");
    mysql_tquery(dbhandle,"SELECT * FROM firma","LoadBusinesses","");
    mysql_tquery(dbhandle,"SELECT * FROM job","LoadJobs","");

    Die Anführungszeichen gehören da nicht hin.
    Probiere das mal so.


    Die drei Zeilen stehen aber nach mysql_connect, oder? ;)

    Ja tun sie und geht immer noch nicht

  • Welche Fehler bekommst du denn genau?
    Kannst du mal die callbacks oben (also LoadBusinesses, LoadJobs und OnFraktionLaden) auskommentieren, eins davon lässt du aber so wie es ist.
    Sprich:
    LoadBusinesses und LoadJobs auskommentieren und OnFraktionLaden lässt du so. Dann siehst du ja, welche Fehlermeldungen für OnFraktionLaden kommen.


    Hinweis: Lösche vorher aber einmal die mysql.log, damit man einen besseren Überblick hat. ;)

  • Welche Fehler bekommst du denn genau?
    Kannst du mal die callbacks oben (also LoadBusinesses, LoadJobs und OnFraktionLaden) auskommentieren, eins davon lässt du aber so wie es ist.
    Sprich:
    LoadBusinesses und LoadJobs auskommentieren und OnFraktionLaden lässt du so. Dann siehst du ja, welche Fehlermeldungen für OnFraktionLaden kommen.


    Hinweis: Lösche vorher aber einmal die mysql.log, damit man einen besseren Überblick hat. ;)

    Gelöscht gestartet genau die selbe Log bekommen ;) 1:1


    für OnFraktionLaden ist die sache das er die Grenze läd obwohl nur 3 einträge sind von daher ist das kein Problem


    das Problem ist das er sagt das für die LoadJobs und Biz kein Aktiver Cache vorhanden ist.

  • Was ist so?

  • Was ist so?

    Lade nix von beiden