Skills & Mysql postato il 02/10/2008 18:09:21 nel forum programmazione, gdrcd, open source, hosting
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: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:26:47
perfetto, allora uso questa strada :) grazie per l'aiuto
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Crossout: Rissa "Scontro a Fuoco"