Oggi è 14/08/2022, 3:25

Tutti gli orari sono UTC + 1 ora [ ora legale ]





 Pagina 1 di 1 [ 5 messaggi ] 

  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [GUIDA] Plugin MySQL
MessaggioInviato: 31/10/2010, 0:03 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 282
Località: Cesena
Favourite GTA: Ballad of Gay Tony
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: ske92

Karma
10


Non connesso
MYSQL PLUGIN



ATTENZIONE!!! La seguente guida tratta un plugin ormai superato ma comunque funzionante, presto verrà postata una guida aggiornata.



1) a_sampmysql.inc Download Link: Click
2a) SAMP-MySql Windows Plugin Package Download: Click
2b) SAMP-MySql Ubuntu Plugin Package Download: Click


Di seguito ci sono le istruzioni e informazioni varie riguardo al plugin MySql per SA-MP (Windows Package) il quale potrà essere usato per gestire in un altro modo i dati sul server.(invece che scriverli sui file, ad esempio)

Primi passi - Setup
I Database (DB) usano linguaggio SQL, per chi non sia pratico di questo linguaggio può cominciare a darci un'occhiata dal di qui.

Estraete tutto il contenuto dell'archivio e mettetelo in una cartella a vostra scelta.
Copiate ed in collate IL CONTENUTO della cartella "src" e mettetelo dentro la cartella plugins. Copiate ed incollate anche il file "sampmysql.dll" nella cartella plugins.
Aprite il file server.cfg e alla riga "plugins" aggiungete di fianco: sampmysql.

Andate qui per scaricare l'importantissimo file libmysql.dll che è la libreria del Database.
Questo file va messo nella cartella generale del vostro server, ovvero dove è presente il file samp-server.exe.

mettete il file "a_sampmysql.inc" dentro la cartella pawno/includes/ del vostro server, aprite la vostra GM e nelle prime righe aggiungete
Codice:
#include <a_sampmysql>


Funzioni & Esempi

Elenco Funzioni.
Codice:
samp_mysql_connect(server[], user[], password[]);
samp_mysql_select_db(db[]);
samp_mysql_query(query[]);
samp_mysql_store_result();
samp_mysql_fetch_row(line[]);
samp_mysql_get_field(field[], value[]); //questa funzione non è dichiarata nel file a_sampmysql.inc, aggiungila manualmente, funzionerà perfettamente
samp_mysql_num_rows();
samp_mysql_num_fields();
samp_mysql_ping();
samp_mysql_real_escape_string(src[], dest[]);
samp_mysql_free_result();
samp_mysql_strtok(dest[], separator[], src[]);
samp_mysql_close();


samp_mysql_connect(server[], user[], password[])
La funzione iniziale senza la quale crea la connessione tra il vostro server e il DB.
Ritorna il valore 1 se tutto è andato bene altrimenti torna il valore 0.

Parametri della funzione:

Server[]: IP del Database
User[]: Lo username con cui vi connettete al DB
Password[]: La password con cui vi connettete al DB

Esempio:
Codice:
samp_mysql_connect(123.45.67.890, UserSKE, PassSKE);


Effettua la connesione al Database che specifichiamo.
Ritorna il valore 1 se tutto è andato per il meglio altrimenti ritorna il valore 0.

Parametro della funzione:

DB[]: Nient'altro che il nome del database a cui collegarsi.

Esempio:
Codice:
samp_mysql_connect(123.45.67.890, UserSKE, PassSKE);
samp_mysql_select_db(NomeDB);


samp_mysql_query(query[])
La funzione eseguira una serie di istruzioni nel database: prelevare dati, registrare dati, cancellare dati.
Ritorna il valore 1 se tutto è andato per il meglio altrimenti ritorna il valore 0.

Parametro della funzione:

Query[]: Le istruzioni da eseguire.

Esempio:
Codice:
samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin");


La query appena descritta preleva i valori di tutti i campi della riga, della tabella "utenti", dove il campo "nome_utente" corrisponde alla stringa "Kevin".

samp_mysql_store_result()
Questa funzione DEVE essere chiamata appena dopo aver eseguito la funzione query appena vista, poichè prepara il risultato della query.
Ritorna il valore 1 se tutto è andato per il meglio altrimenti ritorna il valore 0.

Nessun parametro richiesto

Esempio:
Codice:
samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin");
samp_mysq_store_result();



samp_mysql_fetch_row(line[])
La funzione "fetch_row" separa tutti i valori dei campi della query eseguita con il carattere "|".
Ritorna il valore 1 se tutto è andato per il meglio, se non ci sono altri campi ritorna0.

Parametro della funzione:

Line[]: La stringa dentro la quale saranno contenuti tutti i valori dei campi della query.

Esempio:
Codice:
new valori[128];
samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin");
samp_mysq_store_result();
samp_mysql_fetch_row(valori);


In questo esempio dentro la stringa "valori" si avrà più o meno una cosa così
Codice:
"Kevin|kevin.******@libero.it|mypassword|8500"

Il primo valore è il nome utente, il secondo è l'email, il terzo è la password e l'ultimo sono i soldi che il giocatore ha IN-GAME.

samp_mysql_get_field(field[], value[])
Questa funzione prende il valore di un campo specifico della tabella del database. (Questa funzione va eseguita dopo fetch_row per prendere i valori)
Ritorna il valore 1 se tutto è qualche valore è stato trovato, se non ha trovato nulla ritorna0.

Parametri della funzione:

Field[]: Il nome del campo da cui prelevare il valore.
Value[]: La variabile dove verrà inserito il valore dal campo prelevato.

Esempio: (Uso sempre lo stesso esempio che si amplia ogni volta in modo che possiate capire)
Codice:
new valori[128], campo[64];
samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin");
samp_mysq_store_result();
samp_mysql_fetch_row(valori);
samp_mysql_get_field("nome_utente", campo);
printf("Dal campo 'nome_utente' è stato prelevato il valore: %s", campo);

In questo caso vista la query e il valore preso dentro la stringa "campo" c'è il nome: "Kevin".


samp_mysql_num_rows()
La funzione ritorna il valore del numero di righe di un certo risultato di una query

Nessun parametro richiesto

Esempio:
Codice:
new valori[128], campo[64];
samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin");
samp_mysq_store_result();
new linee = samp_mysql_num_rows();


samp_mysql_num_field()
La funzione ritorna il valore del numero di campi di un certo risultato di una query

Nessun parametro richiesto

Esempio:
Codice:
new valori[128], campo[64];
samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin");
samp_mysq_store_result();
new campi = samp_mysql_num_field();



samp_mysql_num_ping()
La funzione controlla che la connessione al DB sia eseguita correttamente.
Se torna 0 allora tutto è ok, se torna un valore diverso da 0 allora la connessione non è correttamente riuscita.

Nessun parametro richiesto

Esempio:
Codice:
samp_mysql_connect(123.45.67.890, UserSKE, PassSKE);
samp_mysql_select_db(NomeDB);
if(samp_mysql_ping() == 0)
{
   print("Connessione al DB avvenuta con successo");
}   




samp_mysql_real_escape_String(src[], dest[])
Questa funzione è davvero molto utile, infatti se dobbiamo eseguire una query essa controlla che non ci siano caratteri speciali e quindi "sistema" la query in modo che non rechi danni al DB.

Parametri della funzione:
Scr[]: Query sorgente da cui prelevare il codice
Dest[]: Stringa dove torna la query sistemata (Questa stringa DEVE essere grande il doppio+1 della query sorgente Es: se "query[64]" allora "query_sist[129]")

Esempio:
Codice:
new q[128], q2[257];
format(q, sizeof(q), "INSERT INTO utenti(nome_utente, email, password, soldi) VALUES('%s', '%s', '%s', %d)", NomeUtente, Email, Pass, Soldi);
samp_mysql_real_escape_string(q,q2);
samp_mysql_query(q2);


La query inserisce nel database i vari valori per stabilire un nuovo account utente. Con la funzione real_escape_string si controlla che tutti i campi siano inseriti senza provocare "buchi" nel sistema.

samp_mysql_free_result()
La funzione farà crashare il vostro server.
Quindi è inutilizzabile comunque essa permette di liberare la memoria alloccata al risultato di una query eseguita.

Nessun parametro richiesto

Esempio:
Codice:
samp_mysql_free_result();


samp_mysql_strtok(dest[], separator[], src[])
Questa funzione funziona esattamente come "strtok()", splitta una stringa a seconda del carattere separatore passato come paramentro.

Parametri della funzione:
Dest[]: La stringa dove destinare il valore di un campo.
Separator[]: Il carattere separatore al quale fare riferimento.
Src[]: La stringa a cui applicare la funzione.

Esempio:
Codice:
new valori[128], campo[64];
samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin");
samp_mysq_store_result();
samp_mysql_fetch_row(valori);
samp_mysql_strtok(campo, "|", valori);
printf("Il valore del primo campo della query è: %s", campo);

Alla fin fine questa funzione fa un lavoro simile alla funzione "get_field"

samp_mysql_close()
Chiude la connessione al DB.

Nessun parametro richiesto

Esempio:
Codice:
samp_mysql_connect(123.45.67.890, UserSKE, PassSKE);
samp_mysql_select_db(NomeDB);
if(samp_mysql_ping() == 0)
{
   print("Connessione al DB avvenuta con successo");
}   
samp_mysql_close();



TUTORIAL MADE BY SKE92beyond AKA Beyond


Spero possa servire questo tutorial a qualche utente che usi il DB ;)

_________________


Top
  
 

 Oggetto del messaggio: Re: [GUIDA] Plugin MySQL
MessaggioInviato: 31/10/2010, 0:34 
Avatar utente
Utente

Iscritto il: 02/09/2010
Messaggi: 406
Località: Favara (AG)
Favourite GTA: San Andreas
Xfire: mond95

Karma
10


Non connesso
Bella SKE : Wink :

_________________
Immagine


Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Plugin MySQL
MessaggioInviato: 31/10/2010, 0:55 
Avatar utente
Utente

Iscritto il: 30/10/2010
Messaggi: 50
Favourite GTA: GTA IV
PlayStation Network: Brian_Furious
Xbox Live: Brian_Furious
Xfire: BrianFurious

Karma
0


Non connesso
Bella guida, sto già creando una GM che contiene MySQL

_________________
Immagine

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Plugin MySQL
MessaggioInviato: 31/10/2010, 10:35 
Avatar utente
Utente

Iscritto il: 29/10/2010
Messaggi: 149
Favourite GTA: San Andreas
Xfire: pcnumbertwo

Karma
0


Non connesso
bella guida, in realtà la volevo fa io, ma lo stesso, good :)

_________________
My clan on Sa:Mp: TDk click :)
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Plugin MySQL
MessaggioInviato: 31/10/2010, 11:33 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 282
Località: Cesena
Favourite GTA: Ballad of Gay Tony
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: ske92

Karma
10


Non connesso
Gradirei non leggere più i messaggi che ho cancellato.
Ricordo a Snake che sei un moderatore, quindi se vuoi dire certe cose c'è la sezione cazzeggio.

Grazie, B

_________________


Top
  
 
Visualizza ultimi messaggi:  Ordina per  
 Pagina 1 di 1 [ 5 messaggi ] 

  Apri un nuovo argomento Rispondi all’argomento

Tutti gli orari sono UTC + 1 ora [ ora legale ]



Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron