Skills & Mysql postato il 02/10/2008 18:09:21 nel forum programmazione, gdrcd e open source
Salve a tutti :)
è da un po' che, per imparare il php, sto cercando di costruire un GDR..
ora, volevo provare ad implementare un sistema di skill, e mi è venuto in mente di usare ocme base per le tabelle il modello di World of Warcraft: In pratica ho una tabella chiamata skills, con ID, nome, descrizione, tipo e costo, poi, nella tabella dei personaggi, ho creato un campo user_skill, in cui inserirei tutte le skill che un personaggio conosce...
ora, guardando come funziona il database di WoW, in questo campo vengono inseriti gli ID di ogni skill conosciuta dal pg, separandoli uno a uno con dei ";".
Mi chiedevo...esiste un metodo in php per poter ricavare tutte le skill di un pg, selezionando ogni ID dal campo user_skill ed usando i punti e virgola per delimitarli uno a uno ?
Attendo speranzoso ^^
Pagine → 1
02/10/2008 18:32:58
Per fare come dici tu, è sufficiente selezionare il dato da db:
SELECT user_skills FROM users ... e ti salvi in una variabile ($row, ad esempio).
Dopodichè, è sufficiente che tu utilizzi il metodo explode, che nel tuo caso potrebbe essere una cosa simile:
$skills = explode($row['user_skills'], ';')
Questo metodo ti crea un array contenente i vari id delle skills.
Comunque ti consiglio una cosa più semplice:
ti crei una tabella specifica, chiamata Skills, e lì ci inserisci l'id dell'utente, e quello della skill; poi la cosa si semplificherebbe molto, sia nel selezionare, che nel modificare/cancellare una singola skill. :)
02/10/2008 18:34:18
Beh, si, certo, pui adottare una soluzione di tipo CSV, ovvero file di testo con i campi separati da un carattere speciale, virgola, punto e virgola, pipe, quello che ti pare, ma e' una pessima soluzione.
C'e' gia' il database che fa queste cose, devi solo imparare un po di linguaggio SQL, che, tra l'altro, e' piuttosto semplice se non vuoi fare query di sesto, settimo dan.
02/10/2008 18:54:00 e modificato da ciupsix il 02/10/2008 18:54:35
Grazie, l'explode è quello che mi serviva...
comunque, l'idea più veloce sarebbe di usare una tabella skill più una che collega skill e personaggi ? qualcosa come quello degli oggetti, giusto ?
02/10/2008 19:18:55
beh, diciamo che sarebbe una soluzione piu' canonica. Se le abilita' sono associate ad un pg solo come un nome allora va bene tenerle come una stringa CSV in un campo del PG, ma se hanno altri attributi, tipo un costo per acquisirle, una descrizione o altro, allora fai meglio a fare una tabella solo per le abilita' ed una tabella relazione tra il pg e le ablita'.
02/10/2008 19:26:47
perfetto, allora uso questa strada :) grazie per l'aiuto
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
Titan Revenge: Aggiornamento Dragonslayer