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

[SQL] Wiecej niz jedno zapytanie


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 mlekovita

    Zaawansowany

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:149
  • Imię:Dawid
Offline

Napisano 22.03.2020 22:11

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

 


  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 053
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 22.03.2020 23:43

Tak


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 mlekovita

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:149
  • Imię:Dawid
Offline

Napisano 22.03.2020 23:49

Tak

 

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


  • +
  • -
  • 0

#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 381
Offline

Napisano 23.03.2020 09:04

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)


  • +
  • -
  • 1




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

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