GDRCD 5.1 Aiuto Età
11/10/2012 15:05:53
Mmm...ok grazie allora magari mi puoi dare una mano con i codici 😅, nel senso partendo dall'inizio e premettendo la mia ignoranza...
Io ho il documento php della scheda del personaggio, so come entrare nel database (🙃) ma non so bene come devo procedere...
io devo creare una colonna in mysql che si chiami ad esempio età giusto? A questo punto cosa devo fare?
Grazie per la pazienza!
11/10/2012 16:17:24
Pardon rieccomi.. si puoi mettere in scheda.inc.php quel codice che ti ho postato prima (facendo attenzione a tutte le indicazioni di copia incolla dal forum, gli apici, gli spazi ecc..).
Metti tutto prima del codice html della pagina, così ti fai la query e il conto, fatto quello hai la tua variabile con l'età corretta al momento e non fai altro che nell'html aggiungere la voce età con il dato che hai ottenuto.
11/10/2012 16:39:46
Aspetta, devo metterlo tra <?php e ?> giusto? 😵
ehm nel caso in cui non ci sia proprio il tag <html>?
Ho provato e al posto della scheda mi da questo:
Parse error: syntax error, unexpected T_VARIABLE in /membri/mmorpgsoccer/pages/scheda.inc.php on line 3
12/10/2012 20:38:34
Decisamente si
13/10/2012 14:27:26
Ciao,
leggevo questo topic e mi son brillati gli occhi dalla felicità. 😆
Volevo chiedere, prima di servirmi di queste indicazioni, se posso usare tranquillamente queste stringhe anche sul GDRCD 5.1 basic.
E vorrei sapere se successivamente, tramite il semplice tasto MODIFICA che si trova nella scheda del Personaggio, potrò modificare le singole schede dei PG/PNG che dovranno vantare un'età "particolarmente più stagionata" rispetto agli altri.
Probabilmente qualcuno potrebbe seccarsi di dover eventualmente ripetere ciò che è già scritto e ampiamente spiegato ma, vi prego 😭 🆘
13/10/2012 15:35:43 e modificato da darklasombra il 13/10/2012 15:38:02
nicodem ha scritto: La soluzione proposta per questo topic vede un'età base per tutti (17 anni mi sembra) ed un incremento che si basa sull'età di gioco nella land.
Se non ho capito male, vuoi utilizzare la stessa tecnica di "invecchiamento da gioco", solo con un'età base variabile a seconda del pg.
Si può ovviamentee fare lo stesso ragionamento, mettendo all'iscrizione un campo che si chiami (per esempio) ETA_BASE, e leggerla insieme alla data di iscrizione.
Invece di fare 17 + (int)$mesi/6... fare $etabase + (int)$mesi/6.
Poi per il resto è tutto uguale.
Sempre che abbia capito il tuo discorso :D
Grazie Nicodem per l'aiuto, ma forse ho sbagliato 😶
Sono andato in scheda.inc.php e sotto la stringa relativa alla data d'iscrizione ho fatto così:
<div class="Eta_base">
$result_diff=gdrcd_query("SELECT PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(data_iscrizione,'%Y%m')) AS tot_mesi FROM personaggio WHERE nome='".$_REQUEST['pg']."'",'result')
$diff_mesi=16+(int)(mesi/4); ?>
</div>
<?php } ?>
Puoi correggere l'errore?
13/10/2012 16:48:02
Nicodem purtroppo non va 😶 ho ricopiato tutto, sostituito gli apostrofi e levato gli spazi, sostituito la parte da te indicata ma nulla, non funziona.. Sicuramente sto sbagliando qualcosa ma non capisco cosa 😥
13/10/2012 16:56:59
nicodem ha scritto: Guarda, come detto piu' volte gdrcd non lo conosceo come pacchetto... ma il tuo indizio è vago! :P
In che senso "non và"? Da errore? Un risultato sbagliato? Cos'è che non torna?
Hai ragione, scusami. La scheda, ora che clicco su Avatar, non compare più e mi esce scritto:
Parse error: syntax error, unexpected T_ELSE in /membri/fearinthenight/pages/scheda.inc.php on line 524
Comunque, ecco come ho ricopiato e modificato:
<div class="Eta_base">
$result_diff=gdrcd_query("SELECT PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(data_iscrizione,'%Y%m')) AS tot_mesi FROM personaggio WHERE nome='".$_REQUEST['pg']."'",'result')
$diff_mesi=gdrcd_query($result_diff, 'fetch');
$eta=16+(int)($diff_mesi['tot_mesi']/4);
?>
</div>
<?php } ?>
13/10/2012 17:28:51 e modificato da clemence il 04/11/2012 18:48:35
Secondo me stai facendo un po' di confusione con le parentesi graffe e i tag di apertura e chiusura php.
@darklasombra, se ho capito bene cosa vuoi fare per risolvere la tua richiesta devi aggiungere un campo sul database nella tabella personaggio in modo da impostare un'età di base da cui partire. Dal pannello modifica della scheda aggiungi un campo nel form dove puoi modificare questa età. Mettine una di default come valore predefenito del campo stesso sul MySQL in modo che ad ogni creazione di personaggio si imposti in automatico un valore. Oppure in fase di iscrizione fai scegliere agli utenti un'età di partenza con cui iniziare, meglio se metti una select option con la scelta dell'età così ti eviti anche problemi di incogruenza dati, lettere e numeri o età esagerate a caso.
Sul phpMyAdmin o quel che usi per interagire con il MySQL. Apri la pagina dove inserire il codice SQL direttamente e puoi mettere questo:
ALTER TABLE 'personaggio' ADD 'eta' INT( 4 ) NULL DEFAULT '17';
"ALTER TABLE" "ADD" Aggiunge così alla tabella "personaggio" il campo "eta" definito come "INT(4)" integer (numerico) di 4 cifre (o 3 o 2 come ti pare vedi tu in base a cosa ti serve) con accettazione valore "NULL" che avrà come DEFAULT il valore "17" (o 18 o 20 o 2 anche qui come ti pare in base a quel che vuoi come base di età che venga inserita dal DATABASE in automatico se al momento della creazione del personaggio -e per tutti i personaggi già presenti che quindi questo campo non l'avevano fin'ora- viene impostato il valore definito come DEFAULT.
POi nella scheda del personaggio:
se hai questo codice <div class="Eta_base"> e poi $result presumo che prima di questo non hai il tag apertura php ma devi metterlo prima di $result altrimenti te lo stampa a video oppure se hai messo "<?php" prima del <div class="Eta_base"> questo viene interpretato dal php e va in errore perchè ovviamente non sono comandi php.
Altra cosa nel codice che hai postato ci sta un <?php } ?> da dove viene sta graffa? dove sta il comando con la relativa apertura graffa per dare un senso a questa? se non esiste potrebbe essere motivo di errore.
Quindi.
<div class="Eta_base">
<?php
$result_diff=gdrcd_query("SELECT PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), DATE_FORMAT(data_iscrizione, '%Y%m'))
AS tot_mesi, eta FROM personaggio WHERE nome = '".$_REQUEST['pg']."'", 'result')
$diff_mesi=gdrcd_query($result_diff, 'fetch');
$eta_attuale=$diff_mesi['eta']+(int)($diff_mesi['mesi']/4);
echo $eta_attuale;
?>
</div>
devi nel tuo caso selezionare sia la differenza di mesi dalla data di iscrizione sia l'età di base da cui parte il pg per fare l'addizione visto che non hai (da quanto ho capito) una base da dare a tutti i pg come standard all'iscrizione ma potrebbe essere aumnentata o diminuita, per questo motivo nella select c'è " AS tot_mesi, eta "
Chiarimenti:
<div class="eta_base">
<?php
apri il div che conterrà il dato dell'età del personaggio, consiglio utilizza per i nomi delle CLASSI dei CSS tutti i nomi minuscoli per evitare errori.
Apri il tag php per il codice <?php.
$result_diff=gdrcd_query("SELECT PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), DATE_FORMAT(data_iscrizione, '%Y%m'))
AS tot_mesi, eta FROM personaggio WHERE nome = '".$_REQUEST['pg']."'", 'result')
Con questa selezioni facendola calcolare al MySQL la differenza di mesi dalla data di iscrizione a oggi del personaggio e il campo età (che sarà inteso come età di partenza per il personaggio) per il pg richiiesto.
$diff_mesi=gdrcd_query($result_diff, 'fetch');
Eseguita la query passi il recordset ad una variabile per la creazione di un'array in formato fetch così puoi richiamare i campi con i nomi originali invece che con i puntamenti numerici.
$eta_attuale=$diff_mesi['eta']+(int)($diff_mesi['mesi']/4);
salvi nella variabile $eta_attuale, il totale tra l'età di partenza che hai in $diff_mesi['eta'] del personaggio (l'età base grazie la quale modificandola aggiungendo un campo in gst_scheda -presumo l'età la modifichiate soltanto voi della gestione o admin o master al limite- se aumenti questa aumenti poi l'età attuale del persoanggio se la diminuisci ovviamente la decrementi dato che è un parametro della somma per ottenere l'età attuale. Sarà la tua variabile su cui puoi interagire e modificare per ottenere delle età che desideri su particolari personaggi. Sarà l'età che puoi mettere come scelta alla registrazione come partenza e lasciare da li che il pg cresca col passarei mesi).
Quindi al parametro eta di base viene aggiunto:
+(int)($diff_mesi['mesi']/4)
l'intero della divisione tra la differenza mesi che ha restituito il MySQL e 4 (o 6 o 5 o quello che vuoi in base a quanti mesi vuoi che corrisponda un anno di vita del personaggio. Di consiglio personalmente di mettere un parametro in config.inc.php tipo una cosa del genere:
$PARAMETERS['settings']['month_x_year'] = 4; //impostare il relativo numero di mesi per l'incremento di un anno di vita del personaggio dalla data di iscrizione.
in questo modo questa riga di codice diventa:
$eta_attuale=$diff_mesi['eta']+(int)($diff_mesi['mesi']/$PARAMETERS['settings']['month_x_year']);
questo ti permetterà di modificare il config e avere il parametro impostato su tutta la land se dovessi aver necessità di visualizzare l'età in un'altra pagina ancora o in altre pagine del sito e quindi ripresentare il conteggio dell'età invece che rimetterti poi a modificare tutte le pagine in cui hai fatto il calcolo con un "diviso 4" fisso.
echo $eta_attuale;
?>
</div>
Fatti tutti i conti, stampa a video il risultato finale nel div dell'età che posizionerai dove vuoi utilizzando i relativi Css. Chiudo il tag php ?> e chiudo il div aperto prima all'inizio.
04/11/2012 18:50:23
Quando vedete che del codice che avete postato spacca la pagina creando barre di scorrimento, fatemi la cortesia di fare quel che ho fatto io per voi: edit del messaggio e mandate a capo un po' di codice finchè la pagina non torna corretta.
E' già la seconda volta che chiedo di mettere un po' di cura in quel che postate.
Discussione seguita da
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Exclusive Villa GdR ↗
RAID Shadow Legends ↗
World of Warship ↗
Cafuné ↗
Fallen Gods ↗
AlterEgo ↗
Neverness to Everness ↗
Seconda Era ↗