[ROZWIĄZANE] brak możliwości usuwania reko...
ogieR8
04.01.2015
Kiedyś na mojej bazie wiem, że była opcja usuwania wybranego rekord'u. Chodzi o db_mod'a,
[] nick ip sid klasa lvl exp str int dex agi
[] <- można było kliknąć w ten kwadracik (zaznaczyć go - oraz jednocześnie kilka innych) i wybrać operacje na dole, ja używałem tylko 'usuń rekord' - coś w ten deseń. Teraz wygląda to tak:
Nie będę podawał tematu, jednak pewną wskazówkę uzyskałem na konkurencyjnym forum pawn'a, odnośnie:
powód: "Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available"
rozwiązanie: Musisz dodać PRIMARY KEY do kolumny UID (identyczny problem, kolega wstawił zrzut ekranu i dostał taką odpowiedź, nie wiem co u niego było tym UID, aby to przenieść do mojej tabeli..)
Dodam, że na MySQL nie znam się kompletnie, tylko używam poradników do optymalizacji bazy w silniku db_mod'a i czasem właśnie wchodzę przez PHPMyAdmin, aby coś usunąć - póki co to tylko testy, jednak dziś dostałem taki zmus.. wchodzę, a tutaj jest mały problem odnośnie usunięcia 1 wpisu..
GwynBleidD
04.01.2015
Wejdź w strukturę tabeli i dodaj 1 kolumnę na początku tabeli. Nazwij ją ID, zaznacz dla niej AUTO_INCREMENT oraz wybierz index PRIMARY
ogieR8
04.01.2015
+ się należy, działa elegancko Na pewno zapamiętam to rozwiązanie
A tak się tylko wtrąca, aby się kiedyś znów nie zdziwić.. co dodać, aby tworzyło tą tabele z unikalnym numerem ID (PRIMARY KEY) i 'atrybutem' (chyba to atrybut) AUTO_INCREMENT (w PHPMyAdmin podpisane jako A_I) ?
public sql_start() { if(g_boolsqlOK) return; new host[128], user[64], pass[64], database[64]; get_cvar_string("diablo_sql_database", database, 63); get_cvar_string("diablo_sql_host", host, 127); get_cvar_string("diablo_sql_user", user, 63); get_cvar_string("diablo_sql_pass", pass, 63); g_SqlTuple = SQL_MakeDbTuple(host, user, pass, database); get_cvar_string("diablo_sql_table", g_sqlTable, 63); new q_command[512]; new typ_primary[5]; switch(get_cvar_num("diablo_sql_save")) { case 0: typ_primary = "nick"; case 1: typ_primary = "ip"; case 2: typ_primary = "sid"; default: typ_primary = "nick"; } formatex(q_command, 511, "CREATE TABLE IF NOT EXISTS `%s` (`nick` VARCHAR(48), `ip` VARCHAR(32), `sid` VARCHAR(32), `klasa` INT(2), `lvl` INT(3) DEFAULT 1, `exp` INT(9) DEFAULT 0, `str` INT(3) DEFAULT 0, `int` INT(3) DEFAULT 0, `dex` INT(3) DEFAULT 0, `agi` INT(3) DEFAULT 0, PRIMARY KEY (`%s`, `klasa`)) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`", g_sqlTable, typ_primary); SQL_ThreadQuery(g_SqlTuple, "TableHandle", q_command); } public create_klass(id, class) { if(g_boolsqlOK) { if(!is_user_bot(id) && !database_user_created[id]) { new data[2]; data[0] = id; data[1] = class; new name[48], ip[32], sid[32], q_command[512]; get_user_name(id, name, 47); get_user_ip(id, ip, 31, 1); get_user_authid(id, sid, 31); log_to_file("test_log.log", "*** %s [%s] <%s> *** Create %s ***", name, ip, sid, Race[class]); replace_all(name, 47, "'", "\'"); formatex(q_command, 511, "INSERT INTO `%s` (`nick`,`ip`,`sid`,`klasa`,`lvl`,`exp`) VALUES ('%s','%s','%s',%i,%i,%i)", g_sqlTable, name, ip, sid, class, srv_avg[class], LevelXP[srv_avg[class]-1]); SQL_ThreadQuery(g_SqlTuple, "create_klass_handle", q_command, data, 2); database_user_created[id] = 1; } } else sql_start(); }
Sorry, że dziś tak troszkę na gotowca, ale SQL dla mnie to naprawdę magia jest, wiem jedynie tyle, że odpowiada to pewnie którejś z linijki formatex, albo jedna, albo druga, a chyba obydwie
Na moje oko..
formatex(q_command, 511, "CREATE TABLE IF NOT EXISTS `%s` (PRIMARY KEY `numer` INT(5), `nick` VARCHAR(48), `ip` VARCHAR(32), `sid` VARCHAR(32), `klasa` INT(2), `lvl` INT(3) DEFAULT 1, `exp` INT(9) DEFAULT 0, `str` INT(3) DEFAULT 0, `int` INT(3) DEFAULT 0, `dex` INT(3) DEFAULT 0, `agi` INT(3) DEFAULT 0, PRIMARY KEY (`%s`, `klasa`)) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`", g_sqlTable, typ_primary);
Chyba dobrze dodałem nową 'kolumnę' w strukturze, w dodatku na początku i jako PRIMARY, ale.. jak dodać, aby automatycznie dodawało numer ?
GwynBleidD
04.01.2015
GwynBleidD
05.01.2015
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL