Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] brak możliwości usuwania rekordów w MYSQL"Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available"


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 04.01.2015 05:56

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:

 

http://scr.hu/1bo3/rv5fe

 

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..


  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#2 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 04.01.2015 07:19

Ty nie posiadasz UID w tabeli. Nie posiadasz właściwie nic, co byłoby unikalne.

Wejdź w strukturę tabeli i dodaj 1 kolumnę na początku tabeli. Nazwij ją ID, zaznacz dla niej AUTO_INCREMENT oraz wybierz index PRIMARY
  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#3 ogieR8

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 04.01.2015 09:49

+ 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 :P

 

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 ?


  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#4 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 04.01.2015 16:04

Nie, zrobiłeś to źle. Wyeksportuj sobie strukturę tej tabeli w phpmyadmin i będziesz miał rozwiązanie na tacy.
  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#5 ogieR8

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 05.01.2015 00:14

Problem rozwiązany, odpowiedzi mi w pełni pomogły ;)

 

/close.


  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 05.01.2015 00:56

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych