Manca L' idea!
Manca L' idea! postato il 15/06/2009 14:52:49 nel forum programmazione, open source e hosting
Salve a tutti,
mentre stavo creando il mio gdr con codice personale, mi sono imbattuto in uno scoglio di cui ora parlo ma che certamente non sarà un problema per esperti.
Bene, io vorrei creare nella scheda del personaggio la sezione in cui ci sono le armi, e gli oggetti che si comperano, poichè per ora il pg può tenere una sola arma, ma ogni volta che ne viene comperata una nuova la precedente sparisce e si sostituisce quella presente, perchè chiaramente ho usato la query "UPDATE".
Credo che bisogni utilizzare il "JOIN" tra due tabelle per collegarle, maessendo un autodidatta non ho quella velocità giusta per arrivare subito al problema.
Lo stesso vale per le missive, una il pg la può tenere perchè basta creare una campo nella tabella del database, ma per tenere le altre?
Grazie per i consigli!
Pagine → 1
15/06/2009 15:31:49
Ma le insert non si usano solo per creare tabelle?
Non sapevo si potessero usare anche per record all' interno di un campo!
15/06/2009 15:40:45 e modificato da dyrr il 15/06/2009 15:41:31
Non conoscendo il codice proprietario che usi per il tuo gdr visto che parli di codice personale ti spiego come potresti fare facendo un esempio usando delle tabelle simili con il numero minimo di campi necessari.
Sicuramente avrai una tabella per i dati del pg che dovrebbe avere due campi
Uno numerico per l'id del pg
Uno per il nome del pg strutturata cosi:
|id_pg|nome_pg|
|-----+-----------|
|_01_|_tizio____|
|_02_|_caio____|
(ho usato gli _ per allineare la tabella decentemente)
e una tabella con i dati degli oggetti:
|id_oggetto|nome_oggetto|
|-----------+-----------------|
|___01___|_oggetto-01___|
|___02___|_oggetto-02___|
a questo punto ti occorre una terza tabella che abbia come minimo 3 campi uno che contenga 3 campi
l'id univoco di quella tabella
l'id numerico del pg
l'id numerico dell'oggetto che questo possiede
|id|id_pg|id_oggetto|
|--+------+--------|
|01|_01_|___01___|
|02|_02_|___01___|
|03|_02_|___02___|
|04|_03_|___01___|
cosa dice sostanzialmente questa tabella
nella prima riga ti dice che il pg 1 cioè l'id univoco di tizio possiede l'oggetto n1
nella seconda ti dice che il pg 2 possiede anche lui l'oggetto 1
nella terza che il pg 2 possiede anche l'oggetto n.2
e nella quarta che anche il pg 3 ha l'oggetto 1
In questo modo in quella tabella tramite query di INSERT e DELETE puoi aggiungere gli oggetti che il pg possiede.
Questo è un esempio minimale del concetto di come puoi fare, dopo aggiungendo campi alla 3za tabella invece dia ggiungere o togliere ogni vola le righe quando il pg compra un oggetot puoi far in maniera che se il pg compra un nuovo oggetto di uno stesso tipo di uno che gia possiede con una query di UPDATE puoi aumentare il numero degli oggetit che possiede di quel tipo raggruppandoli, ma di base il concetto è quello che ti ho spiegato sopra
15/06/2009 15:46:17
Dyyr sei stato chiarissimo, in effetti non ci avevo proprio pensato, a fare una cosa simile.
Lo metto subito in atto, grazie mille.
P.S.
Tranquillo il codice è proprietario, nessun open
15/06/2009 20:07:15
Ma se faccio un "insert" in un campo in cui è già presente qualcosa? Facciamo caso che nel campo "oggetto" c'è non so "babbuino", perfetto, se faccio un' altro insert cosa accade?
15/06/2009 20:38:56
In quel caso dipende tutto da come è stata strutturata la tabella.
Sostanzialmente i casi sono due.
Se nella tabella il campo del nome dell'oggetto è stato definito in maniera che possa avere solo vlaori unici, lo puoi settare dal phpmyadmin o tramite una query tipo questa:
ALTER TABLE `oggetti` ADD UNIQUE (
`nome_oggetto`
)
L'insert semplicemente non avverrà in quanto trova gia un record con quel nome nel database.
se invece non lo è ti creerà una nuova riga nel database
15/06/2009 21:28:43
Ho fatto la cosa più maccheronica e probabilmente meno intelligente possibile, cioè quella proposta all' inizio da Dyyr, poichè nel codice uso molto i COOKIE che mi permettono sempre e comunque di gestire dei dati evitando di fare molte query in un' unica pagina e quindi dovrei essere riuscito!
Grazie ragazzi!
16/06/2009 21:23:57 e modificato da iko93 il 16/06/2009 21:25:45
melone ha scritto: [quote]iko93 ha scritto: Ma le insert non si usano solo per creare tabelle?
Non sapevo si potessero usare anche per record all' interno di un campo!
Argh! :ninja:
Non fare confusione. Le tabelle si creano con "CREATE", si modificano con "ALTER" e si cancellano con "DROP".
Le operazioni di inserimento, aggiornamento e delete corrispondono invece ad "INSERT", "UPDATE" e "DELETE"[/quote]
si infatti anche io sapevo così, solo che ho confuso le parole di feber!
Una domanda, come mai il codice funziona ma la pagina non si carica?
Mi spiego meglio, la pagina pare non caricarsi, tuttavia chiudendo la finestra e ritornando nel gioco le query richieste accadono, quindi funziona ma non di carica la pagina, qualcuno sa il motivo?
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
CRSED: F.O.A.D. ↗
Enlisted ↗
World of Tanks ↗
Exclusive Villa GdR ↗
The Coven ↗
Tiles Survive ↗
Tibia ↗
Foundation Galactic Frontier ↗