←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

[SQL] Wiecej niz jedno zapytanie

  • +
  • -
mlekovita's Photo mlekovita 22.03.2020

Witam, czy da rade jakoś umieścić dwa zapytania w jednej funkcji?

 

public wszystkienazwy(id)
{
	if (!is_user_connected(id) || end) return PLUGIN_HANDLED;

	new queryData[192], tempId[1];

	tempId[0] = id;

	formatex(queryData, charsmax(queryData), "SELECT id, name, kills FROM `jb_gang`");

	SQL_ThreadQuery(sql, "wszystkienazwy_handled", queryData, tempId, sizeof(tempId));

	return PLUGIN_HANDLED;
}




public wszystkienazwy_handled(failState, Handle:query, error[], errorNum, tempId[], dataSize)
{
	if (failState) {
		log_to_file("jb_gangserr.log", "[GANGS] SQL Error: %s (%d)", error, errorNum);

		return PLUGIN_HANDLED;
	}
        
	new id = tempId[0];

	if (!is_user_connected(id)) return PLUGIN_HANDLED;

        static clanName[32], clanId;
	
	while (SQL_MoreResults(query)) {
                clanId = SQL_ReadResult(query, SQL_FieldNameToNum(query, "id"));
		SQL_ReadResult(query, 0, clanName, charsmax(clanName));

                new iMenu = menu_create("Wszystkie klany", "Menu_dostepne_handler");

		menu_additem(iMenu, clanName, clanId);

		SQL_NextRow(query);
	}

//        new queryData[192], tempId[1];
//
//	tempId[0] = id;
//
//	formatex(queryData, charsmax(queryData), "SELECT * FROM `jb_gang_skills` WHERE clanId = '%i'", clanId);
//
//	SQL_ThreadQuery(sql, "wszystkienazwy_handled", queryData, tempId, sizeof(tempId));

	return PLUGIN_HANDLED;
}

To dodatkowe zapytanie oddzielilem slashami / na dole

 

Czyli ma to wygladac tak ze pobierze najpierw te wyzej zapytania z jednej tabeli a pozniej z drugiej na podstawie id ktorego wybral

 

Quote

  • +
  • -
Robiin's Photo Robiin 22.03.2020

Tak

Quote

  • +
  • -
mlekovita's Photo mlekovita 22.03.2020

Tak

 

Super :D a jakby pan to zrobił z przykładem wyżej bo ja kombinuje i coś dojść do tego nie moge

Quote

  • +
  • -
Rivit's Photo Rivit 23.03.2020

musisz uzyc joinow.

Podaj struktury tabeli

I poczytaj sobie to: https://www.mysqltut...inner-join.aspx lub to: https://www.guru99.com/joins.html

Mniej więcej coś takiego:

SELECT id, name, kills, kolumna_z_skills1, kolumna_z_skills2, kolumna_z_skills3, FROM `jb_gang` JOIN `jb_gang_skills` ON `jb_gang`.id = `jb_gang_skills`.kolumna_z_id_klanu

(nie znam składni mysql, wiec mozliwe ze do poprawy to jest, ale juz wykminisz sobie)

Quote