Elenco razze per altra voce in scheda
Elenco razze per altra voce in scheda postato il 23/08/2019 16:46:57 nel forum programmazione, open source e hosting e modificato da jan90 il 23/08/2019 17:04:51
Buondì!
Perdonate il titolo enigmatico ma non saprei come scriverlo altrimenti! >.<
Espongo la questione: sarebbe possibile utilizzare l'elenco delle razze per "stampare" due voci differenti in scheda?
Attualmente per modificare la razza c'è l'elenco nella gestione della scheda, come da codice, mentre la seconda voce/caratteristica che ho inserito viene scritta tramite text-box nel pannello di modifica della scheda.
Io vorrei che entrambe le voci si trovassero nella gestione della scheda e che entrambe attingessero allo stesso elenco.
Credo che il relativo codice sia questo:
<?php $query="SELECT id_razza, nome_razza FROM razza ORDER BY nome_razza"; $razza_r=gdrcd_query($query, 'result'); ?>
<div class='form_label'>
<?php echo gdrcd_filter('out',$PARAMETERS['names']['race']['sing']); ?>
</div>
<div class='form_field'>
<select name="modifica_razza">
<?php while($razza_row=gdrcd_query($razza_r, 'fetch')){ ?>
<option value="<?php echo $razza_row['id_razza']; ?>" <?php if($razza_row['id_razza']==$record['id_razza']){echo 'selected';} ?> /><?php echo $razza_row['nome_razza']; ?></option>
<?php }
gdrcd_query($razza_r, 'free');
?>
</select>
</div>
Visto che la voce si chiama "ascendente" nel database, tabella 'personaggio', come si potrebbe fare? ç.ç
Pagine → 1 2
24/08/2019 12:50:59
Per capire meglio, vorresti che la razza in scheda sia modificabile dal pg o dallo staff?
Poi se non mi sbaglio quello che vorresti creare è un sistema di sottorazze in cui, per esempio, una volta scelta la razza elfo da un secondo menù è possibile scegliere silvano oppure oscuro, giusto?Se così non basta solo modificare la tabella personaggio, ma serve anche creare una nuova tabella chiamata sottorazza o come preferisci
24/08/2019 14:22:29
serve anche un campo aggiuntivo nella tabella personaggio chiamato tipo id_sotto_razza cosi da legare poi questo id all'id della tabella nuova chiamata sottorazza
24/08/2019 17:46:55
cybershadow ha scritto: Per capire meglio, vorresti che la razza in scheda sia modificabile dal pg o dallo staff?
Poi se non mi sbaglio quello che vorresti creare è un sistema di sottorazze in cui, per esempio, una volta scelta la razza elfo da un secondo menù è possibile scegliere silvano oppure oscuro, giusto?Se così non basta solo modificare la tabella personaggio, ma serve anche creare una nuova tabella chiamata sottorazza o come preferisci
Più che un sistema di sotto-razze sarebbe un sistema di bonus e malus / pregi e difetti alla Sine Requie o Mondo di Tenebra.
Siccome ho notato che le razze sono l'unico "marchingegno" nel codice per intervenire direttamente sulle statistiche (destrezza, costituzione, ecc...) ho pensato di usarla in questo modo. Così, ho creato una nuova voce in scheda, "ascendente", e lo stesso ho fatto nella tabella 'personaggio' del db. Queste scelte di bonus e malus sono tutte messe nell'elenco delle razze ovviamente e io vorrei che allo staff fosse possibile selezionare, dal medesimo elenco, un'opzione da "stampare" accanto alla voce razza (bonus) e un'opzione per la voce ascendente (malus).
Sono un'autodidatta e non me ne intendo ma, per fare questo, non può bastare modificare il codice di sopra per dirgli: prendi questa voce dall'elenco e stampala qui (alla voce malus, appunto, in scheda)? O è più complicato di così? Chiedo il vostro aiuto perché ho tentato di modificare qualcosa, tipo $record("id_razza") con $record("ascendente"), e di stampare stampa, ma invece di far apparire il nome esce il codice numerico relativo ad ogni razza, tipo 1057.
Scusate se sono poco chiara ç.ç
24/08/2019 19:40:58
Ti suggerisco vivamente di fare una nuova tabella per i bonus/malus, considera che è molto confuso il come hai spiegato ciò che vuoi fare qui.
Non devi ad ogni costo usare SQl come linguaggio per comunicare con il db, puoi usare le funzione precostruite da gdrcd (scimmiotta il codice scritto) e create tabelle intere tramite phpmydamin così come inserire o modificare valori.
Un po' noioso ma se proprio vuoi fare queste modifiche senza programmatore ti suggerisco di fare così.
11/06/2020 16:54:18
Riprendo la discussione perché sto riscontrando un problema nel fare una cosa analoga, ovvero creare una nuova voce nella scheda del gdrcd 5.5 che si riferisce alla stirpe di una razza. Non mi serve che siano collegate direttamente, ma che possa selezionare una stirpe piuttosto che un'altra dalla sezione Amministra nel menù della scheda.
Ho creato una nuova voce nella scheda nel db chiamandola id_bloodline;
ho creato la pagina gestione_bloodlines.inc.php che funziona e mi permette di creare nuove stirpi a mio piacimento;
ho modificato il file scheda.inc.php per far comparire la dicitura "Stirpe" e, non so per quale grazia mistica, il valore compare correttamente;
ho modificato il file scheda_gst.inc per far comparire il comando di modifica stirpe che idealmente fa le stesse cose di quello per cambiare razza al Pg e funziona, ovvero riesco a visualizzare dal menù a tendina le stirpi che ho provato a creare fino ad ora,
MA! quando vado a cliccare su Modifica al fondo della scheda, mi appare questo errore: Fatal error: Call to undefined function gdr_filter() in /membri/mygdr/pages/scheda_gst.inc.php on line 25
Alla riga 25 c'è un elenco di valori che si riferiscono alle parti della scheda da modificare, ma non mi sembra ci siano errori <.<
Allego il codice dell'intera scheda_gst.inc perché non so più dove sbattere la testa.
Grazie a chiunque mi darà una mano a capire cosa non va!
<div class="pagina_schedam_odifica">
<?php /*HELP: */
if (isset($_REQUEST['pg']) === false)
{
echo gdrcd_filter('out', $MESSAGE['error']['unknown_character_sheet']);
} else
{
if ($_SESSION['permessi'] < MODERATOR)
{
echo gdrcd_filter('out', $MESSAGE['error']['access_denied']);
} else
{
if ($_POST['op'] == 'modify')
{
gdrcd_query("UPDATE personaggio SET email = '" . gdrcd_filter('in',
$_POST['modifica_email']) . "', affetti = '" . gdrcd_filter('in',
$_POST['modifica_affetti']) . "', descrizione = '" . gdrcd_filter('in',
$_POST['modifica_background']) . "', url_media = '" . gdrcd_filter('in',
gdrcd_filter('fullurl', $_POST['modifica_url_media'])) . "', url_img = '" . gdrcd_filter('in',
gdrcd_filter('fullurl', $_POST['modifica_url_img'])) . "', car0 = " . gdrcd_filter('num',
$_POST['car0']) . ", car1 = " . gdrcd_filter('num', $_POST['car1']) . ", car2 = " . gdrcd_filter('num',
$_POST['car2']) . ", car3 = " . gdrcd_filter('num', $_POST['car3']) . ", sesso = '" . gdrcd_filter('in',
$_POST['modifica_sesso']) . "', id_razza=" . gdrcd_filter('num',
$_POST['modifica_razza']) . ", id_bloodline=" . gdr_filter('num',
$_POST['modifica_bloodline']) . ", banca=" . gdrcd_filter('num',
$_POST['modifica_banca']) . ", salute_max=" . gdrcd_filter('num',
$_POST['modifica_salute_max']) . " WHERE nome = '" . gdrcd_filter('in',
$_REQUEST['pg']) . "' AND permessi <= " . $_SESSION['permessi'] . "");
echo '<div class="warning">' . gdrcd_filter('out', $MESSAGE['warning']['modified']) . '</div>';
} else
{
/*Carico le informazioni del PG*/
$record = gdrcd_query("SELECT email, sesso, id_razza, id_bloodline, descrizione, affetti, url_img, url_media, car0, car1, car2, car3, salute_max, banca FROM personaggio WHERE nome='" . gdrcd_filter('in',
$_REQUEST['pg']) . "'");
}
?>
<div class="page_title">
<h2><?php echo gdrcd_filter('out', $MESSAGE['interface']['sheet']['page_name']); ?></h2>
</div>
<div class="page_body">
<?php if (isset($_POST['op']) === false)
{ ?>
<div class="panels_box">
<?php
if ($_SESSION['permessi'] >= MODERATOR)
{
?>
<div class="form_gioco">
<!-- Form utente modifica -->
<form action="main.php?page=scheda_gst" method="post">
<div class='form_label'>
<?php echo gdrcd_filter('out',
$MESSAGE['interface']['sheet']['modify_form']['admin']['email']); ?>
</div>
<div class='form_field'>
<input type="text" name="modifica_email"
value="<?php echo gdrcd_filter('out', $record['email']); ?>"/>
</div>
<div class='form_label'>
<?php echo gdrcd_filter('out',
$MESSAGE['interface']['sheet']['modify_form']['admin']['gender']); ?>
</div>
<div class='form_field'>
<select name="modifica_sesso">
<option value="m" <?php if ($record['sesso'] == 'm')
{
echo 'selected';
} ?> />
m</option>
<option value="f" <?php if ($record['sesso'] == 'f')
{
echo 'selected';
} ?> />
f</option>
</select>
</div>
<?php $query = "SELECT id_razza, nome_razza FROM razza ORDER BY nome_razza";
$razza_r = gdrcd_query($query, 'result'); ?>
<div class='form_label'>
<?php echo gdrcd_filter('out', $PARAMETERS['names']['race']['sing']); ?>
</div>
<div class='form_field'>
<select name="modifica_razza">
<?php while($razza_row=gdrcd_query($razza_r, 'fetch')){ ?>
<option value="<?php echo $razza_row['id_razza']; ?>" <?php if($razza_row['id_razza']==$record['id_razza']){echo 'selected';} ?> /><?php echo $razza_row['nome_razza']; ?></option>
<?php }
gdrcd_query($razza_r, 'free');
?>
</select>
</div>
<?php $query = "SELECT id_bloodline, nome_bloodline FROM bloodline ORDER BY nome_bloodline";
$bloodline_r = gdrcd_query($query, 'result'); ?>
<div class='form_label'>
<?php echo gdrcd_filter('out', $PARAMETERS['names']['bloodline']['sing']); ?>
</div>
<div class='form_field'>
<select name="modifica_bloodline">
<?php while($bloodline_row=gdrcd_query($bloodline_r, 'fetch')){ ?>
<option value="<?php echo $bloodline_row['id_bloodline']; ?>" <?php if($bloodline_row['id_bloodline']==$record['id_bloodline']){echo 'selected';} ?> /><?php echo $bloodline_row['nome_bloodline']; ?></option>
<?php }
gdrcd_query($bloodline_r, 'free');
?>
</select>
</div>
<div class='form_label'>
<?php echo gdrcd_filter('out',
$MESSAGE['interface']['sheet']['modify_form']['admin']['url_img']); ?>
</div>
<div class='form_field'>
<input type="text" name="modifica_url_img"
value="<?php echo gdrcd_filter('out', $record['url_img']); ?>" class="form_input"/>
</div>
<div class='form_label'>
<?php echo gdrcd_filter('out',
$MESSAGE['interface']['sheet']['modify_form']['admin']['background']); ?>
</div>
<div class='form_field'>
<textarea type="textbox" name="modifica_background"
class="form_textarea"><?php echo gdrcd_filter('out',
$record['descrizione']); ?></textarea>
</div>
<div class="form_info">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['help']['bbcode']); ?>
</div>
<div class='form_label'>
<?php echo gdrcd_filter('out',
$MESSAGE['interface']['sheet']['modify_form']['admin']['relationships']); ?>
</div>
<div class='form_field'>
<textarea type="textbox" name="modifica_affetti"
class="form_textarea"><?php echo gdrcd_filter('out',
$record['affetti']); ?></textarea>
</div>
<div class="form_info">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['help']['bbcode']); ?>
</div>
<div class='form_label'>
<?php echo gdrcd_filter('out',
$MESSAGE['interface']['sheet']['modify_form']['admin']['url_media']); ?>
</div>
<div class='form_field'>
<input type="text" name="modifica_url_media"
value="<?php echo gdrcd_filter('out', $record['url_media']); ?>" class="form_input"/>
</div>
<div class='form_label'>
<?php echo gdrcd_filter('out',
$MESSAGE['interface']['sheet']['modify_form']['admin']['bank']); ?>
</div>
<div class='form_field'>
<input name="modifica_banca" value="<?php echo $record['banca']; ?>" class="form_input"/>
</div>
<div class='form_label'>
<?php echo gdrcd_filter('out',
$MESSAGE['interface']['sheet']['modify_form']['admin']['max_hp']); ?>
</div>
<div class='form_field'>
<input name="modifica_salute_max" value="<?php echo $record['salute_max']; ?>"
class="form_input"/>
</div>
<input type="hidden" name="op" value="modify"/>
<input type="hidden"
value="<?php echo gdrcd_filter('get', $_REQUEST['pg']); ?>"
name="pg"/>
<div class='form_submit'>
<input type="submit" value="<?php echo $MESSAGE['interface']['forms']['submit']; ?>"
class="form_submit"/>
</div>
</form>
<!-- Caratteristiche -->
<div class="form_label">
<?php echo gdrcd_filter('out', $MESSAGE['register']['fields']['stats']); ?>
</div>
<div class="form_field">
<table>
<tr>
<td>
<?php echo gdrcd_filter('out', $PARAMETERS['names']['stats']['car0']); ?><br/>
<select name="car0">
<?php for ($i = 1; $i <= $PARAMETERS['settings']['cars_cap']; $i++)
{ ?>
<option value="<?php echo $i; ?>" <?php if ($record['car0'] == $i)
{
echo 'SELECTED';
} ?> >
<?php echo $i; ?>
</option>
<?php } ?>
</select>
</td>
<td>
<?php echo gdrcd_filter('out', $PARAMETERS['names']['stats']['car1']); ?><br/>
<select name="car1">
<?php for ($i = 1; $i <= $PARAMETERS['settings']['cars_cap']; $i++)
{ ?>
<option value="<?php echo $i; ?>" <?php if ($record['car1'] == $i)
{
echo 'SELECTED';
} ?> >
<?php echo $i; ?>
</option>
<?php } ?>
</select>
</td>
<td>
<?php echo gdrcd_filter('out', $PARAMETERS['names']['stats']['car2']); ?><br/>
<select name="car2">
<?php for ($i = 1; $i <= $PARAMETERS['settings']['cars_cap']; $i++)
{ ?>
<option value="<?php echo $i; ?>" <?php if ($record['car2'] == $i)
{
echo 'SELECTED';
} ?> >
<?php echo $i; ?>
</option>
<?php } ?>
</select>
</td>
<td>
<?php echo gdrcd_filter('out', $PARAMETERS['names']['stats']['car3']); ?><br/>
<select name="car3">
<?php for ($i = 1; $i <= $PARAMETERS['settings']['cars_cap']; $i++)
{ ?>
<option value="<?php echo $i; ?>" <?php if ($record['car3'] == $i)
{
echo 'SELECTED';
} ?> >
<?php echo $i; ?>
</option>
<?php } ?>
</select>
</td>
<td>
<tr>
</table>
</div>
<input type="hidden" name="op" value="modify"/>
<input type="hidden"
value="<?php echo gdrcd_filter('get', $_REQUEST['pg']); ?>"
name="pg"/>
<div class='form_submit'>
<input type="submit" value="<?php echo $MESSAGE['interface']['forms']['submit']; ?>"
class="form_submit"/>
</div>
</form>
</div>
</div>
<?php
}//if
}//if
}
}//else?>
</div>
<!-- Link a piè di pagina -->
<div class="link_back">
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('url',
$_REQUEST['pg']); ?>"><?php echo gdrcd_filter('out', $MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
</div><!-- pagina -->
11/06/2020 22:57:30 e modificato da breaker il 11/06/2020 22:58:54
id_bloodline=" . gdr_filter('num',
$_POST['modifica_bloodline']) .
modifica gdr_filter in gdrcd_filter
id_bloodline=" . gdrcd_filter('num',
$_POST['modifica_bloodline']) .
ti sei solamente dimenticato di copiare correttamente il nome della funzione, nulla di grave
12/06/2020 08:49:34 e modificato da nobara il 12/06/2020 10:58:17
breaker ha scritto:
id_bloodline=" . gdr_filter('num',
$_POST['modifica_bloodline']) .
modifica gdr_filter in gdrcd_filter
id_bloodline=" . gdrcd_filter('num',
$_POST['modifica_bloodline']) .
ti sei solamente dimenticato di copiare correttamente il nome della funzione, nulla di grave
Me lo sentivo che era una cosa "da nulla"! #facepalm
Grazie mille Breaker per l'aiuto! Avrò guardato quella parte di codice per buona parte del pomeriggio ma non me ne sono accorta <.<
Ora però riscontro un altro problema XD
Nella scheda, in corrispondenza della Stirpe, nella colonna di destra non mi stampa/modifica la stirpe da me selezionata: resta imperterrita la dicitura Stirpe invece di Lupo/Leopardo. I richiami nella parte di codice relativa alla bloodline sono uguali a quelli della razza, quindi non capisco perché graficamente non me lo aggiorni dopo la modifica (che adesso viene correttamente eseguite, almeno stando al messaggio di conferma dopo che modifico i valori da Amministra). Non viene visualizzato nessun fatal error o simili quando modifico la scheda e tutti gli altri campi si aggiornano correttamente. Da cosa potrebbe dipendere?
12/06/2020 19:10:52
Hai visto se nel database (da phpmyadmin) il valore si vede aggiornato?
12/06/2020 20:43:39
breaker ha scritto: Hai visto se nel database (da phpmyadmin) il valore si vede aggiornato?
Sì, il valore id_bloodline viene aggiornato ogni volta che da Amministra cambio la stirpe.
Non capisco perchè invece non appaia nella scheda
12/06/2020 22:02:02
posta il codice di scheda
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
The Coven ↗
World of the Sea Battle ↗
Seconda Era ↗
RAID Shadow Legends ↗
Wuthering Waves ↗
Enlisted ↗
AlterEgo ↗
Sea of Conquest ↗
Neverness to Everness ↗
Hero Wars ↗