Server absturz evtl. durch MySQL

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
  • Morgen,
    ich befasse mich seit einigen Tagen mit Pawn und mit dem mysql Plugin: http://forum.sa-mp.com/index.php?topic=79352.0
    Nun funktioniert alles so weit ohne Probleme, bis auf der Familien Chat. Ich lese aus der Datenbank aus, wer gerade von dem Team online ist, und schicke die Nachricht an die entsprechenden IDs. Hier mal der Code:
    new newtext[64];
    strmid(newtext, text, 3, strlen(text), sizeof(newtext));
    MY_MYSQL_Connect();
    new query[256];
    new row[128];
    new anzahl;
    new Daten[1][1];
    format(query, sizeof(query), "SELECT tab_online.online_playerid FROM tab_online INNER JOIN tab_user ON tab_user.user_id = tab_online.online_user_id_fs WHERE (tab_user.user_teamid = '%i') ;", PlayerInfo[id][teamid]);
    mysql_query(query);
    mysql_store_result();
    anzahl = mysql_num_rows();
    mysql_free_result();


    for (new i = 0; i < anzahl; i++){
    format(query, sizeof(query), "SELECT tab_online.online_playerid FROM tab_online INNER JOIN tab_user ON tab_user.user_id = tab_online.online_user_id_fs WHERE (tab_user.user_teamid = '%i') LIMIT %i,1 ;", PlayerInfo[id][teamid], i);
    mysql_query(query);
    mysql_store_result(),
    mysql_fetch_row_format(row, "|");
    mysql_free_result();
    split(row, Daten, '|');
    SendClientMessage(strval(Daten[0]), FAMILY, newtext);
    }


    MY_MYSQL_Close();



    Hier wird der Befehl aufgerufen: In der Funktion OnPlayerCommandText:
    // Family Chat
    if (strcmp("/f", cmdtext, true, 2) == 0)
    {
    // Überprüfen ob man in einer Familie ist!!
    if (PlayerInfo[playerid][teamid] == 0){
    SendClientMessage(playerid, RED, "Du bist in keiner Familie");
    } else {
    Chat_SendFamily(playerid, cmdtext);
    }
    return 1;
    }



    Nun besteht das Problem darin, wenn mehrere Nachrichten nacheinander schreibe stürtzt mir der Server ab.
    Woran kann das liegen? Ich könnte mir vllt. denken wo, aber bevor ich das sage, würde ich gerne von euch Meinungen einholen.
    Mit diesem Quelltext geht es, ist allerdings ohne die DB nutzung:
    for (new i = 0; i < MAX_PLAYERS; i++){
    if (PlayerInfo[i][teamid] == PlayerInfo[id][teamid]){
    SendClientMessage(i, FAMILY, newtext);
    }
    }


    [/i][i]Ich hoffe ihr könnt mir einen kleinen Tipp geben :)
    mfg Phill

  • üDanke für deine Antwort.
    Also nur unter Linux stürzt dieses Konstrukt ab :)
    Habe es jetzt erstmal ohne die DB im Hintergrund laufen den Family Chat.
    Wenn trotzdem jemand eine Idee dazu hat, würde ich mich freuen diese zu lesen.
    mfg Phill