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_ReadResult


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

#1 Patman

    Nowy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:7
  • Lokalizacja:Poland
Offline

Napisano 01.07.2010 21:48

Witam, proszę o pomoc w użyciu funkcji SQL_ReadResult. Chciałbym, aby po wpisaniu "wyświetl" wyświetliła się informacja z bazy MySQL np. z bazy "base" tabela "test"(id,text). Wszelkie próby nieudane. Udały się tylko inne operacje na bazie. Na forum fragmenty obszernych pluginów. Chciałbym, aby ktoś napisał mi to czarno na białym ten prosty kod. Dziękuję.

#include <amxmodx>
#include <amxmisc>
#include <sqlx>

#define PLUGIN "test"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("wyswietl","make");
	// Add your code here...
}
public make()
{
	new Handle:Tuple = SQL_MakeDbTuple("localhost", "root", "pw", "base")
	SQL_ThreadQuery(Tuple, "read", "SELECT text FROM test LIMIT 1")
}
public read()
{
	//PLEASE HELP
}

  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.07.2010 22:45

Jeśli ThreadQuery to możesz wykorzystać parametry podawane do funkcji read.
Czytając stringa z pierwszej kolumny (SELECT pierwsza, druga, trzecia_kolumna FROM ....) podajesz drugi parametr 0, potem tablicę i max długość.


Do wątku możesz dodać własne parametry, tu przydałoby się id gracza (tablica data[])

Warto by było sprawdzić czy wynik można odczytać (SQL_MoreResults())
#include <amxmodx>
#include <amxmisc>
#include <sqlx>

#define PLUGIN "test"
#define VERSION "1.0"
#define AUTHOR "author"

new Handle:Tuple;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("wyswietl","make");
	
	Tuple = SQL_MakeDbTuple("localhost", "root", "pw", "base")
}
public make(id)
{
	new data[1]
	data[0] = id;
	SQL_ThreadQuery(Tuple, "read", "SELECT text FROM test LIMIT 1", data, 1)
}
public read(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
	new id = Data[0];
	if(id && !is_user_connected(id))
		return PLUGIN_CONTINUE

	if(Errcode)
        {
                console_print(id, "Error on Save_xp query: %s",Error)
		return PLUGIN_CONTINUE
        }
        if(FailState == TQUERY_CONNECT_FAILED)
        {
                console_print(id,"Could not connect to SQL database.")
                return PLUGIN_CONTINUE
        }
        else if(FailState == TQUERY_QUERY_FAILED)
        {
                console_print(id,"Query failed")
                return PLUGIN_CONTINUE
        }
	
	//if(SQL_MoreResults(query)){
	new szText[128];
	SQL_ReadResult(Query, 0, szText, 127);
	console_print(id,"Text = %s", szText)
	//}
}

  • +
  • -
  • 2

#3 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 09.07.2010 21:08

Co do funkcji SQL_ReadResult: jeśli nie znasz numeru kolumny (nie chce Ci się liczyć, zmieniasz coś w kodzie itp) możesz podać coś takiego:

SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pierwsza"), szText, 127);


W ten sposób amx sam sobie obliczy numer kolumny, wystarczy podać jej nazwę ;)
  • +
  • -
  • 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





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

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