Oggi è 08/08/2022, 11:52

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] MySQL in generale e Plugin by StrickenKid
MessaggioInviato: 31/10/2010, 21:03 
Avatar utente
Moderatore

Iscritto il: 28/10/2010
Messaggi: 189
Località: Palermo (PA)
Favourite GTA: San Andreas
Xfire: tlkstanley

Karma
1


Non connesso
~FAQ~


Cos'è il MySQL?
Un sistema di gestione dei database più comune al mondo e più sicuro anche perché ha la caratteristica di essere OpenSurce

Per cosa si usa?
Viene usato principalmente per immagazzinare i dati di un sito come questo (nome utente, password, post ecc...)

Cosa c'entra con SA-MP?
Esistono tanti plugins per SA-MP che permettono la comunicazione tra server e database in questa guida parleremo in particolare di quello di StrickenKid. Utilizzare il MySQL in un server SA-MP può essere utile solo se si vuol fare comunicare il server e il sito, altrimenti basterebbe salvare le statistiche su un file

Perché proprio quello di StrickenKid?
Dai test effettuati sembra il più veloce a ad eseguire le query, e quindi a inviare/ricevere dati.

Cosa serve?
-Un server SA-MP (va bene anche quello in locale)
-Un database MySQL che permetta anche ad IP diversi da localhost di effettuare la connessione, ad esempio quello di altervista non va bene, o lo acquistate o cercate di trovare qualche servizio free


~INSTALLAZIONE~


Qui trovate il topic ufficiale nel forum di SA-MP, scaricate il plugin a seconda del vostro sistema operativo, se avete Windows, bisogna installare obbligatoriamente il netframework e mettere il file libmysql.dll nella cartella del server e su windows/system32.
Procedere come una normale installazione di un plugin, spostando mysql.dll nella cartella plugins (se non c'è createla nella cartella principale del server) e scrivendo nel file server.cfg
Codice:

plugins mysql

Ora provate ad avviare il server e assicuratevi che appaia la scritta di avvenuto caricamento, esempio: " SA:MP MySQL Plugin v2.0 Loaded."


~COME INIZIARE...~


Termini da conoscere:
DB: Database
Query: pacchetto di dati che invia/riceve il server
PMA: PhpMyAdmin
Campo/field: colonna
Records: riga

Per iniziare ad usare il mysql bisogna avere necessariamente un minimo di dimestichezza con PhpMyAdmin, ritengo che sia inutile iniziare ad inviare query direttamente dal server SA-MP in quanto chi è ancora alle prime armi non capirebbe niente...
PMA è una delle più comuni applicazioni OpenSurce che permette di amministrare il database mysql in modo semplificiato, infatti TUTTI i servizi di hosting web quando vendono il dominio assieme al pannello di controllo del sito danno sempre installato anche PMA.
Il servizio di hosting se gratuito vi dovrebbe dare l'IP del database, il nome utente del database, il nome del database stesso e la password per accedervi, altrimenti dovrete creare voi il vostro database: il servizio di webhosting vi fornirà il link per accedere al pannello di controllo del vostro sito, che può variare da servizio a servizio, ad esempio aruba da cPanel, invece gamehosting da DirectAdmin.
Esempio su DirectAdmin:
Fare click su MySQL Management
Immagine

Fare click su Create new database
Immagine

Inserire i dati a vostro piacimento
Immagine

Appuntate i dati da qualche parte
Immagine

Adesso effettuate l'accesso a Phpmyadmin tramite il link che c'è sotto "create new database" (screen n°2)


Una volta ottenuti i dati del vostro database bisogna effettuare il login da phpmyadmin, avete due possibilità: inserire i dati del vostro pannello di controllo del sito oppure il nome del database e la password.

A questo punto dovreste avere davanti la seguente schermata. Cliccate sulla sinistra su il nome del vostro database, (nel mio caso stanley_dbname) e vi verrà presentato il form per creare la vostra tabella.
La tabella è come un "contenitore" di righe e colonne, quindi date un nome alla vostra tabella, ad esempio "Utenti" e come numero di campi inserite 3. Il primo campo chiamatelo "Username", il secondo "Password", il terzo "Soldi", assegnate il tipo del primo campo a VARCHAR e lunghezza 24, al secondo campo fate la stessa cosa e infine per i soldi lasciate INT. Fare click su Salva.

In questo modo abbiamo la nostra tabella, ora dobbiamo solo riempirla. Quindi passiamo alla parte del server SA-MP:

Per prima cosa dovete includere nella vostra gamemode le funzioni native del plugin, quindi spostate il file mysql.inc in "server/pawno/include" e nella GM scrivete in cima "#include <mysql>".
Definite i vostri dati all'inizio in modo da non ripeterli ogni volta:
Codice:
//CONFIGURAZIONE MYSQL
#define MYSQL_HOST       "95.141.32.41"
#define MYSQL_USER       "stanley_user"
#define MYSQL_PASS       "asdsad"
#define MYSQL_DB         "stanley_dbname"
#define MYSQL_TBL       "Utenti"


Inserite in OnGamemodeInit
Codice:
mysql_init();
   mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB);

In OnGamemodeExit
Codice:
if(mysql_ping() == 0) mysql_close();


Ok ora tramite le altre funzioni del plugin possiamo richiedere e inviare i dati nella nostra tabella.

Ora vi riassumo tutte le principali funzioni:

Creare una riga:
Codice:
new query[128];
format(query,128,"INSERT INTO "MYSQL_TBL" (Username,Password,Soldi) VALUES ('%s',MD5('%s')),'0'",PlayerName(playerid),inputtext);
         mysql_query(query);

Tradotto: Inserisci nella tabella, nel campo Username il valore del nick ingame, nel campo Password, la password inserita nel dialog, nel campo Soldi il valore 0.

Ricevere i valori dal database:
Per ricevere un valore INTERO
Codice:
new query[256];
    if(mysql_ping() == 0)
    {
      format(query,sizeof(query),"SELECT Money FROM "MYSQL_TBL" WHERE Username='%s'",PlayerName(playerid));
      mysql_query(query);
      mysql_store_result();
      if(mysql_num_rows() == 1)//controlla se c'è qualcosa
      {
         pInfo[playerid][Money] = mysql_fetch_int();
         GivePlayerMoney(playerid,pInfo[playerid][Money]);
         mysql_free_result();//libera la memoria dal valore appena ricevuto
           }
     }


Per una stringa:
Codice:
format(query,sizeof(query),"SELECT Email FROM "MYSQL_TBL" WHERE Username='%s'",tmp);
         mysql_query(query);
         mysql_store_result();
         while (mysql_fetch_row(data1, "|"))//dal server arriveranno tutti i valori dei campi dove l'username è uguale a quello in game, ad esempio "[TLK]StanleY|passhaschatainmd5|2000" tutti separati da una | quindi noi dobbiamo "separarli" e prendere quello che vogliamo
         {
             sscanf(data1, "p<|>s", Email1);
             mysql_free_result();
         }

Per lo scanf mettete il plugin (lo trovate nel foro di samp)

Cambiare il valore di qualcosa:

Codice:
format(str,128,"UPDATE "MYSQL_TBL" SET Soldi = '%d' WHERE Username = '%s'",2000,PlayerName(playerid));
         mysql_query(str);

Basta leggere il contenuto della query per capire cosa fa...


Adesso selezionando il vostro database da phpmyadmin e cliccando nella prima icona della vostra tabella, come qui, vi troverete davanti tutti i dati inviati, ma sotto forma grafica, esempio.

Per tutte le altre funzioni --> http://wiki.sa-mp.com/wiki/MySQL_Plugin

Smanettateci un po' fino a quando non capite qualcosa, almeno io ho imparato cosi, domani se ho tempo faccio anche un FS di prova login/register e un piccolo script in PHP che permetta di visualizzare le stats sul sito.

_________________


Top
  
 

 Oggetto del messaggio: Re: [GUIDA] MySQL in generale e Plugin by StrickenKid
MessaggioInviato: 31/10/2010, 21:06 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 1349
Località: Agrigento
Favourite GTA: Vice City
PlayStation Network: Giovanni94m
Xfire: Giovanni94m
Steam: Giovanni94m

Karma
10


Non connesso
Ottimo stanley.
Comunque puoi ancora arricchirla : Thumbup :

_________________
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] MySQL in generale e Plugin by StrickenKid
MessaggioInviato: 31/10/2010, 21:06 
Avatar utente
Utente

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

Karma
0


Non connesso
Bella stan

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


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] MySQL in generale e Plugin by StrickenKid
MessaggioInviato: 31/10/2010, 21:09 
Avatar utente
Moderatore

Iscritto il: 28/10/2010
Messaggi: 189
Località: Palermo (PA)
Favourite GTA: San Andreas
Xfire: tlkstanley

Karma
1


Non connesso
per stasera mi siddia :asd:

_________________


Top
  
 
 Oggetto del messaggio: Re: [GUIDA] MySQL in generale e Plugin by StrickenKid
MessaggioInviato: 31/10/2010, 22:34 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Bella guida! Peccato che non riesco ad impararlo bene xD


Top
 E-mail  
 
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