Beiträge von MAV_GER

    @Jeffry


    ServerLog:
    [23:35:07] newkdnr: 0 | a: 0
    [23:35:07] newkdnr: 0 | a: 1


    MySQL Log:
    [23:35:07] [DEBUG] mysql_format - connection: 1, len: 256, format: "SELECT COUNT(*) AS spieler FROM user WHERE allowed = '1' OR allowed = '0'"
    [23:35:07] [DEBUG] mysql_query - connection: 1, query: "SELECT COUNT(*) AS spieler FROM user WHERE allowed = '1' OR allo", use_cache: true
    [23:35:07] [DEBUG] CMySQLQuery::Execute - starting query execution
    [23:35:07] [DEBUG] CMySQLQuery::Execute - query was successfully executed within 0.667 milliseconds
    [23:35:07] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
    [23:35:07] [DEBUG] CMySQLHandle::SaveActiveResult - cache saved (id: 1)
    [23:35:07] [DEBUG] cache_get_field_content_int - row: 0, field_name: "spieler", connection: 1
    [23:35:07] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "spieler", data: "188"
    [23:35:07] [DEBUG] mysql_format - connection: 1, len: 8, format: "SELECT KDNR FROM user WHERE KDNR>=0 "
    [23:35:07] [ERROR] mysql_format - destination size is too small
    [23:35:07] [DEBUG] mysql_query - connection: 1, query: "SELECT ", use_cache: true
    [23:35:07] [DEBUG] CMySQLQuery::Execute - starting query execution
    [23:35:07] [ERROR] CMySQLQuery::Execute - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    [23:35:07] [DEBUG] cache_get_field_content_int - row: 0, field_name: "KDNR", connection: 1
    [23:35:07] [WARNING] cache_get_field_content_int - no active cache
    [23:35:07] [DEBUG] cache_get_field_content_int - row: 1, field_name: "KDNR", connection: 1
    [23:35:07] [WARNING] cache_get_field_content_int - no active cache


    sehe ich das richtig, da es bisher 188 Datenbankeinträge sind, muss die Zielvariable auf diese Anzahl erhöht werden?

    Vielen Dank Jeffry, bin gerade nach hause gekommen und habe es sofort getestet. Perfekt, es funktioniert!!


    wie sieht das mit diesem Kommando aus
    cache_get_field_content_int(x, "Spielernummer", dbhandle);


    kann ich dieses Kommando in eine Schleife einbauen und den Wert in "x" mit "x++" erhöhen, damit er jedesmal wieder abgefragt wird?


    oder anders gefragt, ich habe jedem Spieler bei der Registrierung eine art Kundennummer gegeben. Das sollte mir die Suche erleichtern wenn an einem Datenbankeintrag manuel etwas geändert werden muss. User die drei Monate inaktiv sind werden automatisch in der Datenbank gelöscht und somit entstehen freie Nummern. Damit ich in der Datenbank keine Lücken habe, möchte ich diese Speicherplätze für neue Mitspieler nutzen. Nur wie kann ich die freien Plätze ermitteln?


    new nr[8];
    new x = 0;
    mysql_format(dbhandle, nr, sizeof(nr), "SELECT KDNR FROM user WHERE KDNR>=0 ");
    mysql_query(dbhandle, nr);
    for(new a=0; a<zaehler; a++)
    {
    new newkdnr = cache_get_field_content_int(x, "KDNR", dbhandle);
    x++
    if(newkdnr != a)
    {
    Spieler[playerid][p_KDNR] = a;
    break;
    }
    }


    an soetwas hatte ich gedacht, aber der Wert von newkdnr bleibt immer 0. egal was bei "x" eingesetzt wird

    Hallo
    Ich bin mit SA-MP noch nicht so vertaut. Wobei, weniger SA-MP als diese MySQL-Verbindung mein Problem ist. Aber ich denke hier bin ich richtig und Ihr könnt mir helfen.
    Das lesen der Daten aus meiner MySQL Datenbank funktioniert bereits. Aber ich brauche jetzt eine Funktion, mit der ich die Einträge in meiner Datenbank zählen kann.
    folgendes hatte ich mir gedacht:


    new query[128];
    mysql_format(dbhandle, query, sizeof(query), "SELECT COUNT(*) AS play FROM user WHERE allowed = '1' OR allowed = '0'");
    new zaehler = cache_get_field_content_int(0, "play", dbhandle);


    Das Ergebnis des SQL-Befehls gibt diese Tabelle raus, aber wie bekomme ich das Ergebnis in die Variable 'zaehler'?
    --------
    | play|
    ---------
    | 123|
    ---------