OnPlayerConnect:
mysql_format(handle,Query, sizeof(Query), "SELECT * FROM `multiaccounts` WHERE `IP` = '%s'", PlayerIP(playerid));
mysql_pquery(handle,Query,"OnCheckMulti","d",playerid);
OnCheckMulti:
forward OnCheckMulti(playerid);
public OnCheckMulti(playerid)
{
new rows,multistring[256],query[300];
cache_get_row_count(rows);
if(rows == 0)
{
mysql_format(handle,query, sizeof(query), "INSERT INTO `multiaccounts` (`IP`, `Accounts`) VALUES ('%s', '%e')", PlayerIP(playerid), GetName(playerid));
mysql_tquery(handle,query);
}
else
{
new multis,multi[16][32],bool:found;
cache_get_value_name(0,"Accounts",multistring);
multis = strexplode(multi, multistring, ",");
for(new i = 0; i < multis; i++)
{
if(strfind(multi[i],GetName(playerid),true) == -1) found = true;
if(strfind(multi[i],GetName(playerid),true) != -1) found = false;
}
if(!found)
{
new name[32];
format(name,sizeof(name),", %s",GetName(playerid));
strcat(multistring, name);
mysql_format(handle,query,sizeof(query),"UPDATE `multiaccounts` SET Accounts = '%s' WHERE IP = '%s'",multistring,PlayerIP(playerid));
mysql_tquery(handle,query);
}
Ist noch länger, aber der Rest des Codes ist unwichtig.
Wenn ich mit dem gleichen Namen wie er schon in der Datenbank steht connecte, wird er trotzdem eingetragen, warum?
Eigentlich werden ja mit strexplode alle Namen die mit einem , getrennt sind einzelnt ausgeschrieben, also loop ich durch ob der Name dort schon irgendwo vorhanden ist, und wenn nicht soll der Name hinzugefügt werden.
Der Name wird aber immer hinzugefügt..