Beiträge von xICE

    OK habs hinbekommen.
    Also ich kann nur jedem von dem MySQL plugin von Strickenkid abraten das das bugs bei der funktion mysql_fetch_float.
    Wenn ihr ein gutes MySQL Plugin braucht nehmt das von BlueG.
    Aber trozdem danke für deine Hilfe Jeffry.

    OK also auch nach dem Update des Plugins(stable version) ist das ergebnis was in meienr server log steht das:


    [23:26:54] -0.000000
    [23:26:54] ergebnis: 0.000000
    [23:26:54] Float: -1.099903


    und das ist die mysql funktion:


    stock Float:MySQL_GetFloat1(Was[],Tabelle[],Wo1[],Ist1[])
    {
    mysql_real_escape_string(Was,Was);
    mysql_real_escape_string(Tabelle,Tabelle);
    mysql_real_escape_string(Wo1,Wo1);
    mysql_real_escape_string(Ist1,Ist1);
    new Query[512], Float:ergebnis;
    format(Query,sizeof(Query),"SELECT %s FROM %s WHERE %s='%s'",Was,Tabelle,Wo1,Ist1);
    mysql_query(Query);
    mysql_store_result();
    new tmp[20];
    format(tmp, 20, "%f", mysql_fetch_float());
    print(tmp);
    ergebnis = floatstr(tmp);
    printf("ergebnis: %f",ergebnis);
    printf("Float: %f",mysql_fetch_float());
    mysql_free_result();
    return ergebnis;
    }

    ich hab jetz auch mal das mysql plugin neu installiert und jetzt bekomme ich den fehler:
    Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)


    keine ahnung wie ich den behebe.

    Das setzt zwar die ganze funktion ausßer kraft aber gut, nun sieht die funktion so aus:


    stock Float:MySQL_GetFloat1(Was[],Tabelle[],Wo1[],Ist1[])
    {
    mysql_real_escape_string(Was,Was);
    mysql_real_escape_string(Tabelle,Tabelle);
    mysql_real_escape_string(Wo1,Wo1);
    mysql_real_escape_string(Ist1,Ist1);
    new Query[512], Float:ergebnis;
    format(Query,sizeof(Query),"SELECT %s FROM %s WHERE %s='%s'",Was,Tabelle,Wo1,Ist1);
    mysql_query(Query);
    mysql_store_result();
    ergebnis = -1.1234;
    printf("ergebnis: %f",ergebnis);
    printf("Float: %f",mysql_fetch_float());
    mysql_free_result();
    return ergebnis;
    }


    und das ergebnis was in der server_log.txt steht ist:


    [22:42:26] ergebnis: -1.123399
    [22:42:26] Float: -1.348413

    Hier den Befehl:


    if (strcmp("/float", cmdtext, true, 10) == 0)
    {
    new str1[256], Float:meineposition;
    meineposition = MySQL_GetFloat1("PosZ","Autohäuser","ID","1");
    format(str1,sizeof(str1),"Das Ergebnis: %f",meineposition);
    SendClientMessage(playerid,grün,str1);
    return 1;
    }


    Hier die Funktion:


    stock Float:MySQL_GetFloat1(Was[],Tabelle[],Wo1[],Ist1[])
    {
    mysql_real_escape_string(Was,Was);
    mysql_real_escape_string(Tabelle,Tabelle);
    mysql_real_escape_string(Wo1,Wo1);
    mysql_real_escape_string(Ist1,Ist1);
    new Query[512], Float:ergebnis;
    format(Query,sizeof(Query),"SELECT %s FROM %s WHERE %s='%s'",Was,Tabelle,Wo1,Ist1);
    mysql_query(Query);
    mysql_store_result();
    ergebnis = mysql_fetch_float();
    printf("ergebnis: %f",ergebnis);
    printf("Float: %f",mysql_fetch_float());
    mysql_free_result();
    return ergebnis;
    }


    Ingame bekomm ich nach dem tset Befegl das Ergebnis: -0.000000


    Und in der server_log.txt steht nicht relevantes.


    und der Inhalt zu der Query aus der mysql_log.txt ist folgender:


    [Tue Jul 29 21:34:05 2014] Function: mysql_real_esacpe_string executed: "PosZ" with result: "PosZ".
    [Tue Jul 29 21:34:05 2014] Function: mysql_real_esacpe_string executed: "Autohäuser" with result: "Autohäuser".
    [Tue Jul 29 21:34:05 2014] Function: mysql_real_esacpe_string executed: "ID" with result: "ID".
    [Tue Jul 29 21:34:05 2014] Function: mysql_real_esacpe_string executed: "1" with result: "1".
    [Tue Jul 29 21:34:05 2014] Function: mysql_query executed: "SELECT PosZ FROM Autohäuser WHERE ID='1'" with result: "0".
    [Tue Jul 29 21:34:05 2014] Function: mysql_store_result executed with result: "1"
    [Tue Jul 29 21:34:05 2014] Function: mysql_fetch_float executed with result: "17.398199".
    [Tue Jul 29 21:34:05 2014] Function: mysql_free_result executed.

    fuktioniert auch so nicht:


    if (strcmp("/float", cmdtext, true, 10) == 0)
    {
    new str1[256], Float:meineposition;
    meineposition = MySQL_GetFloat1("PosZ","Autohäuser","ID","1"); //Die 1 hinter dem MySQL_GetFloat ist nur für test zwecke
    format(str1,sizeof(str1),"Das Ergebnis: %f",meineposition);
    SendClientMessage(playerid,grün,str1);
    return 1;
    }

    Hier eine Test Funktion bei der aus auch nicht funktioniert:


    if (strcmp("/float", cmdtext, true, 10) == 0)
    {
    new str1[256], Float:float;
    float = MySQL_GetFloat1("PosZ","Autohäuser","ID","1")
    format(str1,sizeof(str1),"Das Ergebnis: %f",float);
    SendClientMessage(playerid,grün,str1);
    return 1;
    }

    Hallo,
    ich arbeite seit einiger zeit mit dem MySQL Pugin von StrickenKid, aber hier bin ich am verzweifeln.
    Ich habe einen MySQL GetFloat befehl geschrieben, dieser funktioniert aber nicht richtig.


    Hier der Befehl:


    stock Float:MySQL_GetFloat(Was[],Tabelle[],Wo[],Ist[])
    {
    mysql_real_escape_string(Was,Was);
    mysql_real_escape_string(Tabelle,Tabelle);
    mysql_real_escape_string(Wo,Wo);
    mysql_real_escape_string(Ist,Ist);
    new Query[512], Float:ergebnis;
    format(Query,sizeof(Query),"SELECT %s FROM %s WHERE %s='%s'",Was,Tabelle,Wo,Ist);
    mysql_query(Query);
    mysql_store_result();
    ergebnis = mysql_fetch_float();
    mysql_free_result();
    return ergebnis;
    }


    Ein forward habe ich auch, und in der mysql_log.txt steht das mysql_fetch_float mit dem richtigen ergebnis ausgeführt wurde aber meine Funktion gibt mir kein ergebnis zurück.


    Bitte um Hilfe
    Kilian