MYSQL EROR

Započeo Bandit234
pre 3 godine
376
pregleda
5
postova
Bandit234
Wheel Man
pre 3 godine
Problem(error/warning): [13:28:16] error #1062 while executing query "INSERT INTO `korisnici` (Ime,Lozinka) VALUES('Jasmin_Bilic', '49') ": Duplicate entry '0' for key 'PRIMARY'

Deo skripte:

enum pInfo
{
  SQLID,
  Ime,
  Lozinka,
  Skin,
  Level,
  Respekti,
  Novac,
  Spol,
  Godine,
  Drzava
};
new PlayerInfo;

new bool:Ulogovan;

enum
{
  DIALOG_REGISTER,
  DIALOG_LOGIN,
  DIALOG_SPOL,
  DIALOG_GODINE,
  DIALOG_DRZAVA
};

new MySQL:SQL;

stock GetName(playerid)
{
  new name;
  GetPlayerName(playerid, name,sizeof(name));
  return name;
}

stock udb_hash(buf[])
{
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n    {
      s1 = (s1 + buf) % 65521;
      s2 = (s2 + s1)    % 65521;
    }
    return (s2 << 16) + s1;
}

main()
{
  print("BosniaSQL beta je ocitan");
}

public OnGameModeInit()
{
  SQL = mysql_connect(MYSQL_HOST,MYSQL_USER,"",MYSQL_DB);
  if(mysql_errno(SQL) != 0 || SQL == MYSQL_INVALID_HANDLE)
  {
        print("Mod nije uspjesno povezan sa databazom, gasim server");
        SendRconCommand("exit");
        return 1;
    }
  print("Uspjesno povezivanje moda sa bazom");
  DisableInteriorEnterExits();
  ShowPlayerMarkers(false);
  EnableStuntBonusForAll(false);
  return 1;
}
public OnPlayerConnect(playerid)
{
  PlayerInfo = -1;
  Ulogovan = false;
  new query;
  mysql_format(SQL,query,sizeof(query),"SELECT * FROM `korisnici` WHERE  `Ime` = '%e' LIMIT 1",GetName(playerid));
  mysql_tquery(SQL,query,"SQL_Provjera","i",playerid);
  return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
  PlayerInfo = -1;
  Ulogovan = false;
  return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  switch(dialogid)
  {
      case DIALOG_LOGIN:
      {
        if(!response)return Kick(playerid);
        if(response)
        {
            if(udb_hash(inputtext) == PlayerInfo)
            {
              if(Ulogovan == true)return SCM(playerid,COLOR_RED,"Vi ste vec ulogovani");
              SetPlayerSkin(playerid, PlayerInfo);
              TogglePlayerSpectating(playerid,false);
              SetPlayerScore(playerid, PlayerInfo);
              ResetPlayerMoney(playerid);
              ResetPlayerWeapons(playerid);
              OcistiChat(playerid,25);
              Ulogovan = true;
              SCM(playerid,COLOR_LIME,"Uspjesno ste se ulogovali");
                SetSpawnInfo(playerid,0,PlayerInfo,0.0,0.0,0.0,0.0,0,0,0,0,0,0);
                SpawnPlayer(playerid);
            }
            else
            {
              ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Upisite svoju lozinku","Uloguj se","Odustani");
            }
        }
      }
      case DIALOG_REGISTER:
      {
        if(!response)return Kick(playerid);
        if(response)
        {
            if(strlen(inputtext) < 10 ||strlen(inputtext) > 65)
            {
              SCM(playerid,COLOR_RED,"Lozinka vam je kraca od 10 ili duza od 65 karaktera!");
              ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Vasa lozinka moze biti samo manja 10 a ne duza od 65 ","Nasavi","Odustani");
            }
            PlayerInfo = udb_hash(inputtext);
            new query;
            mysql_format(SQL,query,sizeof(query),"INSERT INTO `korisnici` (Ime,Lozinka) VALUES('%e', '%d') ",GetName(playerid),inputtext);
            mysql_tquery(SQL, query,"insertSQLID","d",playerid);

            ShowPlayerDialog(playerid,DIALOG_SPOL,DIALOG_STYLE_LIST,"Spol","Musko\nZensko","Unesi","Odustani");
        }
      }
      case DIALOG_SPOL:
      {
        if(!response)return Kick(playerid);
        if(response)
        {
            switch(listitem)
            {
              case 0:
              {
                  PlayerInfo = 0;
                  SCM(playerid,COLOR_LIME,"Vi ste musko!");
              }
              case 1:
              {
                  PlayerInfo = 1;
                  SCM(playerid,COLOR_LIME,"Vi ste zensko!");
              }
            }
            new query;
            mysql_format(SQL,query,sizeof(query),"UPDATE `korisnici` SET `Spol` = '%d' WHERE `ID` = '%d' ",PlayerInfo,PlayerInfo);
            mysql_tquery(SQL,query);
            ShowPlayerDialog(playerid,DIALOG_DRZAVA,DIALOG_STYLE_LIST,"Drzava","Bih\nHrvatska\nSrbija\nCrna Gora\nMakedonija\nSlovenija\nOstalo","Unesi","Odustani");
        }
      }
      case DIALOG_DRZAVA:
      {
        if(!response)return Kick(playerid);
        if(response)
        {
            switch(listitem)
            {
              case 0:
              {
                  PlayerInfo = 0;
                  SCM(playerid,COLOR_LIME,"Vi ste iz Bih!");
              }
              case 1:
              {
                  PlayerInfo = 1;
                  SCM(playerid,COLOR_LIME,"Vi ste iz Hrvatska!");
              }
              case 2:
              {
                  PlayerInfo = 2;
                  SCM(playerid,COLOR_LIME,"Vi ste iz Srbija!");
              }
              case 3:
              {
                  PlayerInfo = 3;
                  SCM(playerid,COLOR_LIME,"Vi ste iz Crna Gora!");
              }
              case 4:
              {
                  PlayerInfo = 4;
                  SCM(playerid,COLOR_LIME,"Vi ste iz Makedonije!");
              }
              case 5:
              {
                  PlayerInfo = 5;
                  SCM(playerid,COLOR_LIME,"Vi ste iz Slovenija!");
              }
              case 6:
              {
                  PlayerInfo = 6;
                  SCM(playerid,COLOR_LIME,"Vi ste iz Ostalo!");
              }
            }
            new query;
            mysql_format(SQL,query,sizeof(query),"UPDATE `korisnici` SET `Drzava` = '%d' WHERE `ID` = '%d' ",PlayerInfo,PlayerInfo);
            mysql_tquery(SQL,query);
            ShowPlayerDialog(playerid,DIALOG_GODINE,DIALOG_STYLE_INPUT,"Godine","Unesite vase godine!","Unesi","Odustani");
        }
      }
      case DIALOG_GODINE:
      {
        new god = strval(inputtext);
          if(god < 10)return ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,"Unesite godine", "Godine ne mogu biti manje od 10 i vise od 65","Unesi", "Odustani");
          if(god > 65)return ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,"Unesite godine", "Godine ne mogu biti manje od 10 i vise od 65","Unesi", "Odustani");
          PlayerInfo = god;
          new query;
        mysql_format(SQL,query,sizeof(query),"UPDATE `korisnici` SET `Godine` = '%d' WHERE `ID` = '%d' ",PlayerInfo,PlayerInfo);
        mysql_tquery(SQL,query);
          SetSpawnInfo(playerid,0,PlayerInfo,0.0,0.0,0.0,0.0,0,0,0,0,0,0);
          SpawnPlayer(playerid);
          Ulogovan = true;

      }
  }
  return 1;
}
forward insertSQLID(playerid);
public insertSQLID(playerid)
{
  PlayerInfo = cache_insert_id();
  printf("Kreiran nalog SQLID %d IME %s",PlayerInfo,GetName(playerid));
  return 1;
}

forward SQL_Provjera(playerid);
public SQL_Provjera(playerid)
{
  switch(cache_num_rows())
  {
      case 0:
      {
        ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Vasa lozinka moze biti samo manja 10 a ne duza od 65 ","Nasavi","Odustani");
      }
      case 1:
      {
        cache_get_value_name_int(0,"ID",PlayerInfo);
        cache_get_value_name(0,"Ime",PlayerInfo);
        cache_get_value_name_int(0,"Lozinka",PlayerInfo);
        cache_get_value_name_int(0,"Spol",PlayerInfo);
        cache_get_value_name_int(0,"Drzava",PlayerInfo);
        cache_get_value_name_int(0,"Godine",PlayerInfo);
        cache_get_value_name_int(0,"Novac",PlayerInfo);
        cache_get_value_name_int(0,"Level",PlayerInfo);
        cache_get_value_name_int(0,"Respekti",PlayerInfo);
        cache_get_value_name_int(0,"Skin",PlayerInfo);
        ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Upisite svoju lozinku","Uloguj se","Odustani");
      }
  }
}


Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
//

Slika/video ingame problema(obavezno ako je ingame problem): //
Jack_Ander
Street Runner
pre 3 godine
Bandit234 wrote on July 18, 2022, 12:25 pm:
Problem(error/warning): [13:28:16] error #1062 while executing query "INSERT INTO `korisnici` (Ime,Lozinka) VALUES('Jasmin_Bilic', '49') ": Duplicate entry '0' for key 'PRIMARY'

Deo skripte:

enum pInfo
{
SQLID,
Ime,
Lozinka,
Skin,
Level,
Respekti,
Novac,
Spol,
Godine,
Drzava
};
new PlayerInfo;

new bool:Ulogovan;

enum
{
DIALOG_REGISTER,
DIALOG_LOGIN,
DIALOG_SPOL,
DIALOG_GODINE,
DIALOG_DRZAVA
};

new MySQL:SQL;

stock GetName(playerid)
{
new name;
GetPlayerName(playerid, name,sizeof(name));
return name;
}

stock udb_hash(buf[])
{
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n    {
      s1 = (s1 + buf) % 65521;
      s2 = (s2 + s1)    % 65521;
    }
    return (s2 << 16) + s1;
}

main()
{
print("BosniaSQL beta je ocitan");
}

public OnGameModeInit()
{
SQL = mysql_connect(MYSQL_HOST,MYSQL_USER,"",MYSQL_DB);
if(mysql_errno(SQL) != 0 || SQL == MYSQL_INVALID_HANDLE)
{
        print("Mod nije uspjesno povezan sa databazom, gasim server");
        SendRconCommand("exit");
        return 1;
    }
print("Uspjesno povezivanje moda sa bazom");
DisableInteriorEnterExits();
ShowPlayerMarkers(false);
EnableStuntBonusForAll(false);
return 1;
}
public OnPlayerConnect(playerid)
{
PlayerInfo = -1;
Ulogovan = false;
new query;
mysql_format(SQL,query,sizeof(query),"SELECT * FROM `korisnici` WHERE  `Ime` = '%e' LIMIT 1",GetName(playerid));
mysql_tquery(SQL,query,"SQL_Provjera","i",playerid);
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
PlayerInfo = -1;
Ulogovan = false;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_LOGIN:
{
if(!response)return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo)
{
if(Ulogovan == true)return SCM(playerid,COLOR_RED,"Vi ste vec ulogovani");
SetPlayerSkin(playerid, PlayerInfo);
TogglePlayerSpectating(playerid,false);
SetPlayerScore(playerid, PlayerInfo);
ResetPlayerMoney(playerid);
ResetPlayerWeapons(playerid);
OcistiChat(playerid,25);
Ulogovan = true;
SCM(playerid,COLOR_LIME,"Uspjesno ste se ulogovali");
    SetSpawnInfo(playerid,0,PlayerInfo,0.0,0.0,0.0,0.0,0,0,0,0,0,0);
    SpawnPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Upisite svoju lozinku","Uloguj se","Odustani");
}
}
}
case DIALOG_REGISTER:
{
if(!response)return Kick(playerid);
if(response)
{
if(strlen(inputtext) < 10 ||strlen(inputtext) > 65)
{
SCM(playerid,COLOR_RED,"Lozinka vam je kraca od 10 ili duza od 65 karaktera!");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Vasa lozinka moze biti samo manja 10 a ne duza od 65 ","Nasavi","Odustani");
}
PlayerInfo = udb_hash(inputtext);
new query;
mysql_format(SQL,query,sizeof(query),"INSERT INTO `korisnici` (Ime,Lozinka) VALUES('%e', '%d') ",GetName(playerid),inputtext);
mysql_tquery(SQL, query,"insertSQLID","d",playerid);

ShowPlayerDialog(playerid,DIALOG_SPOL,DIALOG_STYLE_LIST,"Spol","Musko\nZensko","Unesi","Odustani");
}
}
case DIALOG_SPOL:
{
if(!response)return Kick(playerid);
if(response)
{
switch(listitem)
{
case 0:
{
PlayerInfo = 0;
SCM(playerid,COLOR_LIME,"Vi ste musko!");
}
case 1:
{
PlayerInfo = 1;
SCM(playerid,COLOR_LIME,"Vi ste zensko!");
}
}
new query;
mysql_format(SQL,query,sizeof(query),"UPDATE `korisnici` SET `Spol` = '%d' WHERE `ID` = '%d' ",PlayerInfo,PlayerInfo);
mysql_tquery(SQL,query);
ShowPlayerDialog(playerid,DIALOG_DRZAVA,DIALOG_STYLE_LIST,"Drzava","Bih\nHrvatska\nSrbija\nCrna Gora\nMakedonija\nSlovenija\nOstalo","Unesi","Odustani");
}
}
case DIALOG_DRZAVA:
{
if(!response)return Kick(playerid);
if(response)
{
switch(listitem)
{
case 0:
{
PlayerInfo = 0;
SCM(playerid,COLOR_LIME,"Vi ste iz Bih!");
}
case 1:
{
PlayerInfo = 1;
SCM(playerid,COLOR_LIME,"Vi ste iz Hrvatska!");
}
case 2:
{
PlayerInfo = 2;
SCM(playerid,COLOR_LIME,"Vi ste iz Srbija!");
}
case 3:
{
PlayerInfo = 3;
SCM(playerid,COLOR_LIME,"Vi ste iz Crna Gora!");
}
case 4:
{
PlayerInfo = 4;
SCM(playerid,COLOR_LIME,"Vi ste iz Makedonije!");
}
case 5:
{
PlayerInfo = 5;
SCM(playerid,COLOR_LIME,"Vi ste iz Slovenija!");
}
case 6:
{
PlayerInfo = 6;
SCM(playerid,COLOR_LIME,"Vi ste iz Ostalo!");
}
}
new query;
mysql_format(SQL,query,sizeof(query),"UPDATE `korisnici` SET `Drzava` = '%d' WHERE `ID` = '%d' ",PlayerInfo,PlayerInfo);
mysql_tquery(SQL,query);
ShowPlayerDialog(playerid,DIALOG_GODINE,DIALOG_STYLE_INPUT,"Godine","Unesite vase godine!","Unesi","Odustani");
}
}
case DIALOG_GODINE:
{
new god = strval(inputtext);
    if(god < 10)return ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,"Unesite godine", "Godine ne mogu biti manje od 10 i vise od 65","Unesi", "Odustani");
    if(god > 65)return ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,"Unesite godine", "Godine ne mogu biti manje od 10 i vise od 65","Unesi", "Odustani");
    PlayerInfo = god;
    new query;
mysql_format(SQL,query,sizeof(query),"UPDATE `korisnici` SET `Godine` = '%d' WHERE `ID` = '%d' ",PlayerInfo,PlayerInfo);
mysql_tquery(SQL,query);
    SetSpawnInfo(playerid,0,PlayerInfo,0.0,0.0,0.0,0.0,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    Ulogovan = true;

}
}
return 1;
}
forward insertSQLID(playerid);
public insertSQLID(playerid)
{
PlayerInfo = cache_insert_id();
printf("Kreiran nalog SQLID %d IME %s",PlayerInfo,GetName(playerid));
return 1;
}

forward SQL_Provjera(playerid);
public SQL_Provjera(playerid)
{
switch(cache_num_rows())
{
case 0:
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Vasa lozinka moze biti samo manja 10 a ne duza od 65 ","Nasavi","Odustani");
}
case 1:
{
cache_get_value_name_int(0,"ID",PlayerInfo);
cache_get_value_name(0,"Ime",PlayerInfo);
cache_get_value_name_int(0,"Lozinka",PlayerInfo);
cache_get_value_name_int(0,"Spol",PlayerInfo);
cache_get_value_name_int(0,"Drzava",PlayerInfo);
cache_get_value_name_int(0,"Godine",PlayerInfo);
cache_get_value_name_int(0,"Novac",PlayerInfo);
cache_get_value_name_int(0,"Level",PlayerInfo);
cache_get_value_name_int(0,"Respekti",PlayerInfo);
cache_get_value_name_int(0,"Skin",PlayerInfo);
ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Upisite svoju lozinku","Uloguj se","Odustani");
}
}
}


Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
//

Slika/video ingame problema(obavezno ako je ingame problem): //
Duplicate entry '0' for key 'PRIMARY'
Jel ti SQLID u bazi sa AUTO_INCREMENT ili ne
Bandit234
Wheel Man
pre 3 godine
Neznam kako da provjerim?
Jack_Ander
Street Runner
pre 3 godine
Bandit234 wrote on July 18, 2022, 2:02 pm:
Neznam kako da provjerim?

Ne znam *
Udji u bazu onda u tablicu igraci, i onda Structure i ides na SQLID edit i imas tamo pise AI i vidi je li ti stiklirano
Bandit234
Wheel Man
pre 3 godine
Rjeseno hvala za pomoc  😄

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava