[Gdr5.1] Razza e classi (consulenza cercasi)
[Gdr5.1] Razza e classi (consulenza cercasi) postato il 25/05/2011 05:37:49 nel forum programmazione, open source e hosting e modificato da gdr-online.com il 15/03/2021 09:42:35
Salve a tutti, vengo su questo forum in cerca di una dritta, ma prima consentitemi di fare una premessa, ovvero la mia quasi totale mancanza di formazione al codice php, diciamo che sono autodidatta e mi sto divertendo a modificare un gdrcd 5.1. Senza indugiare oltre, con qualche sforzo e un po' di impegno, sono riuscito ad apportare delle modifiche da me desiderate, solo che quanto tutto pareva troppo bello per essere vero, ecco giungere un bel blocco che mi impedisce di proseguire oltre.
Per non sbagliare, ho creato una tabella uguale a quella delle razze, ne ho modificato i campi in maniera idonea legandoli alle possibili classi di gioco, quindi sono andato ad implementare ciò che occorreva sul dizionario e sul file di configurazione. Dopo aver modificato senza fatica la pagina dell'iscrizione, ed aver constata sulle righe del db che funziona come io avevo previsto, cerco di modificare la scheda del personaggio; ecco che giunge l'intoppo. In sintesi, sia sulla nomenclatura razza, sia su quella classe, mi compare lo stesso dato, dato che figura in relazione, alla successione di stringa di codice legato al parametro voluto. Quindi se la stringa della razza precede quella della classe, mi appaiono due identici dati legati alla classe, al contrario, due dati uguali legati alla razza.
Vi posto qui sotto il codice scheda da me modificato, così magari qualcuno riesce a farmi capire l'errore ^^ . Grazie a chi potrà essermi d'aiuto e a coloro i quali mi dedicheranno attenzione.
<div class="pagina_scheda">
<?php /*HELP: E' possibile modificare la scheda agendo su scheda.css nel tema scelto, oppure sostituendo il codice che segue la voce "Scheda del personaggio"*/ ?>
<?php
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
print '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
$query = "SELECT personaggio.*, classe.sing_m, classe.sing_f, classe.id_classe, classe.bonus_car0, classe.bonus_car1, classe.bonus_car2, classe.bonus_car3, classe.bonus_car4, classe.bonus_car5 FROM personaggio LEFT JOIN classe ON personaggio.id_classe=classe.id_classe WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
}
/*******aggiunta che ho fatto io******/
{ $query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5 FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
//********Fino a qui*********/
//Se non esiste il pg
if (gdrcd_query($result, 'num_rows')==0){print '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
}
else {
$record = gdrcd_query($result, 'fetch');
gdrcd_query($result, 'free');
$bonus_oggetti = gdrcd_query("SELECT SUM(oggetto.bonus_car0) AS BO0, SUM(oggetto.bonus_car1) AS BO1, SUM(oggetto.bonus_car2) AS BO2, SUM(oggetto.bonus_car3) AS BO3, SUM(oggetto.bonus_car4) AS BO4, SUM(oggetto.bonus_car5) AS BO5 FROM oggetto JOIN clgpersonaggiooggetto ON oggetto.id_oggetto = clgpersonaggiooggetto.id_oggetto WHERE clgpersonaggiooggetto.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' AND clgpersonaggiooggetto.posizione > ".ZAINO."");
/*Controllo esilio, se esiliato non visualizzo la scheda*/
if($record['esilio']>strftime('%Y-%m-%d')){
print '<div class="warning">'.gdrcd_filter('out',$record['nome']).' '.gdrcd_filter('out',$record['cognome']).' '.gdrcd_filter('out',$MESSAGE['warning']['character_exiled']).' '.gdrcd_format_date($record['esilio']).' ('.$record['motivo_esilio'].' - '.$record['autore_esilio'].')</div>';
if ($_SESSION['permessi']>=GAMEMASTER){?>
<div class="panels_box"><div class="form_gioco">
<form action="main.php?page=scheda_modifica&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']) ?>" method="post">
<input type="hidden" value="<?php print strftime('%Y'); ?>" name="year" />
<input type="hidden" value="<?php print strftime('%m'); ?>" name="month" />
<input type="hidden" value="<?php print strftime('%d'); ?>" name="day" />
<input type="hidden" value="<?php gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['unexile']); ?>" name="causale" />
<input type="hidden" value="exile" name="op" />
<div class="form_label">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['unexile']); ?>
</div>
<div class="form_submit">
<input type="submit"
value="<?php print gdrcd_filter('out',$MESSAGE['interface']['forms']['submit']); ?>" />
</div>
</form>
</div></div>
<?php }
} else {
$px_totali_pg=$record['esperienza'];
//carico le sole abilità del pg
$result=gdrcd_query("SELECT id_abilita, grado FROM clgpersonaggioabilita WHERE nome='".gdrcd_filter('in',$_REQUEST['pg'])."'", 'result');
$px_spesi=0;
while ($row=gdrcd_query($result, 'fetch')){
/*Costo in px della singola abilità*/
$px_abi=$PARAMETERS['settings']['px_x_rank']*(($row['grado']*($row['grado']+1))/2);
/*Costo totale*/
$px_spesi+=$px_abi;
$ranks[$row['id_abilita']]=$row['grado'];
}
gdrcd_query($result, 'free');
/*Incremento skill*/
if((gdrcd_filter('get',$_REQUEST['op'])=='addskill') && (($_SESSION['login']==gdrcd_filter('out',$_REQUEST['pg']))||($_SESSION['permessi']>=MODERATOR))){
$px_necessari=$PARAMETERS['settings']['px_x_rank']*($ranks[$_REQUEST['what']]+1);
if(($px_totali_pg-$px_spesi)>=$px_necessari){
$px_spesi+=$px_necessari;
if ($px_necessari==$PARAMETERS['settings']['px_x_rank']){
$query="INSERT INTO clgpersonaggioabilita (id_abilita, nome, grado) VALUES (".gdrcd_filter('num',$_REQUEST['what']).", '".gdrcd_filter('in',$_REQUEST['pg'])."', 1)";
$ranks[$_REQUEST['what']]=1;
#print $query;
} else {
$ranks[$_REQUEST['what']]++;
$query="UPDATE clgpersonaggioabilita SET grado = ".$ranks[$_REQUEST['what']]." WHERE id_abilita = ".gdrcd_filter('num',$_REQUEST['what'])." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
}//else
gdrcd_query($query);
print '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}//if
}//if
/*Decremento skill*/
if((gdrcd_filter('get',$_REQUEST['op'])=='subskill') && ($_SESSION['permessi']>=MODERATOR)){
if ($ranks[$_REQUEST['what']]==1){
$query="DELETE FROM clgpersonaggioabilita WHERE id_abilita = ".$_REQUEST['what']." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' LIMIT 1";
$ranks[$_REQUEST['what']]=0;
} else {
$ranks[$_REQUEST['what']]--;
$query="UPDATE clgpersonaggioabilita SET grado = ".$ranks[$_REQUEST['what']]." WHERE id_abilita = ".$_REQUEST['what']." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
}//else
gdrcd_query($query);
print '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}//if
if (isset($_REQUEST['op'])===FALSE){
?>
<!--- SCHEDA DEL PERSONAGGIO --->
<div class="page_title">
<h2><?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['page_name']); ?></h2>
</div>
<div class="page_body">
<div class="menu_scheda"><!-- Menu scheda -->
<?php /*Visualizza il link modifica se l'utente visualizza la propria scheda o se è almeno un capogilda*/
if((gdrcd_filter('out',$_REQUEST['pg'])==$_SESSION['login'])||($_SESSION['permessi']>=GUILDMODERATOR)){ ?>
<a href="main.php?page=scheda_modifica&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['update']);?>
</a>
<?php } ?>
<a href="main.php?page=scheda_trans&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['transictions']);?>
</a>
<a href="main.php?page=scheda_px&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['experience']);?>
</a>
<a href="main.php?page=scheda_oggetti&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['inventory']);?>
</a>
<a href="main.php?page=scheda_equip&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['equipment']);?>
</a>
<?php /*Visualizza il link modifica se l'utente visualizza la propria scheda o se è almeno un capogilda*/
if($_SESSION['permessi']>=MODERATOR){ ?>
<a href="main.php?page=scheda_log&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['log']);?>
</a>
<a href="main.php?page=scheda_gst&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['gst']);?>
</a>
<?php } ?>
</div><!-- Menu scheda -->
<div class="ritratto"><!-- nome, ritratto, ultimo ingresso -->
<div class="titolo_box">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['portrait']); ?>
</div>
<div class="ritratto_nome">
<span class="ritratto_nome_nome">
<?php print gdrcd_filter('out',$record['nome']); ?>
</span>
<span class="ritratto_nome_cognome">
<?php print gdrcd_filter('out',$record['cognome']); ?>
</span>
</div>
<div class="ritratto_avatar">
<img src="<?php print $record['url_img']; ?>" class="ritratto_avatar_immagine" />
</div>
<div class="iscritto_da">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['first_login']).' '.gdrcd_format_date($record['data_iscrizione']); ?>
</div>
<?php if (gdrcd_format_date($record['ora_entrata'])!='00/00/0000'){ ?>
<div class="ultimo_ingresso">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['last_login']).' '.gdrcd_format_date($record['ora_entrata']); ?>
</div>
<?php } ?>
<div class="ritratto_invia_messaggio"><!-- Link invia messaggio -->
<a href="main.php?page=messages_center&newmessage=yes&reply_dest=<?php print $record['nome']; ?>" class="link_invia_messaggio">
<?php if (empty($PARAMETERS['names']['private_message']['image_file'])===FALSE){ ?>
<img src="<?php print $PARAMETERS['names']['private_message']['image_file']; ?>"
alt="<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['send_message_to']['send']).' '. gdrcd_filter('out',$PARAMETERS['names']['private_message']['sing']).' '.gdrcd_filter('out',$MESSAGE['interface']['sheet']['send_message_to']['to']).' '.gdrcd_filter('out',$record['nome']); ?>"
title="<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['send_message_to']['send']).' '. gdrcd_filter('out',$PARAMETERS['names']['private_message']['sing']).' '.gdrcd_filter('out',$MESSAGE['interface']['sheet']['send_message_to']['to']).' '.gdrcd_filter('out',$record['nome']); ?>"
class="link_messaggio_forum">
<?php } else {
print gdrcd_filter('out',$MESSAGE['interface']['sheet']['send_message_to']['send']).' '.gdrcd_filter('out', strtolower($PARAMETERS['names']['private_message']['sing'])).' '.gdrcd_filter('out',$MESSAGE['interface']['sheet']['send_message_to']['to']).' '.gdrcd_filter('out',$record['nome']);
} ?>
</a>
</div><!-- Link invia messaggio -->
</div><!-- nome, ritratto, ultimo ingresso, abiti portati -->
<div class="profilo"><!-- Punteggi, salute, status, classe, razza. -->
<div class="titolo_box">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['profile']); ?>
</div>
<?php if($record['permessi']>0){ ?>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['role']); ?>:
</div>
<div class="profilo_voce_valore">
<?php
switch ($record['permessi']){
case USER: $permessi_utente = ''; break;
case GUILDMODERATOR: $permessi_utente = $PARAMETERS['names']['guild_name']['lead']; break;
case GAMEMASTER: $permessi_utente = $PARAMETERS['names']['master']['sing']; break;
case MODERATOR: $permessi_utente = $PARAMETERS['names']['moderators']['sing']; break;
case SUPERUSER: $permessi_utente = $PARAMETERS['names']['administrator']['sing']; break;
}
print gdrcd_filter('out',$permessi_utente).' <img src="imgs/icons/permessi'.$record['permessi'].'.gif" class="profilo_img_gilda" />'; ?>
</div>
</div>
<?php
} ?>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['occupation']); ?>:
</div>
<div class="profilo_voce_valore">
<?php //carico le gilde
$guilds=gdrcd_query("SELECT ruolo.nome_ruolo, ruolo.gilda, ruolo.immagine, gilda.visibile, gilda.nome AS nome_gilda FROM clgpersonaggioruolo LEFT JOIN ruolo ON ruolo.id_ruolo = clgpersonaggioruolo.id_ruolo LEFT JOIN gilda ON ruolo.gilda = gilda.id_gilda WHERE clgpersonaggioruolo.personaggio = '".gdrcd_filter('in',$record['nome'])."'", 'result');
if (gdrcd_query($guilds, 'num_rows')==0){
print gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['uneployed']);
}else{
while ($row_guilds = gdrcd_query($guilds, 'fetch')){
if($row_guilds['gilda']==-1){
print '<img class="profilo_img_gilda" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out',$row_guilds['immagine']).'" alt="'.gdrcd_filter('out',$row_guilds['nome_ruolo']).'" title="'.gdrcd_filter('out',$row_guilds['nome_ruolo']).'" />';
} else {
if(($row_quilds['visibile']==1)||($_SESSION['permessi']>=USER)){
print '<a href="main.php?page=servizi_gilde&id_gilda='.$row_guilds['gilda'].'"><img class="profilo_img_gilda" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out',$row_guilds['immagine']).'" alt="'.gdrcd_filter('out',$row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" title="'.gdrcd_filter('out',$row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" /></a>';
}
}//else
}//while
gdrcd_query($guilds, 'free');
}//else?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['race']['sing']); ?>:
</div>
<div class="profilo_voce_valore">
<?php if((empty($record['sing_f'])==FALSE)||(empty($record['sing_m'])==FALSE)){
if($record['sesso']=='f'){print gdrcd_filter('out',$record['sing_f']);}
else{print gdrcd_filter('out',$record['sing_m']);}
} else { print gdrcd_filter('out',$PARAMETERS['names']['race']['sing'].' '.$MESSAGE['interface']['sheet']['profile']['no_race']);}?>
</div>
</div>
<!---aggiunta fatta da me--->
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['classe']['sing']); ?>:
</div>
<div class="profilo_voce_valore">
<?php if((empty($record['sing_f'])==FALSE)||(empty($record['sing_m'])==FALSE)){
if($record['sesso']=='f'){print gdrcd_filter('out',$record['sing_f']);}
else{print gdrcd_filter('out',$record['sing_m']);}
} else { print gdrcd_filter('out',$PARAMETERS['names']['classe']['sing'].' '.$MESSAGE['interface']['sheet']['profile']['no_classe']);}?>
</div>
</div>
<!---fino a qui----->
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['experience']); ?>:
</div>
<div class="profilo_voce_valore">
<?php print gdrcd_filter('out',$px_totali_pg); ?>
</div>
</div>
<!-- caratteristiche -->
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['stats']['car0']); ?>:
</div>
<div class="profilo_voce_valore">
<?php print gdrcd_filter('out',$record['car0']+$record['bonus_car0']+$bonus_oggetti['BO0']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['stats']['car1']); ?>:
</div>
<div class="profilo_voce_valore">
<?php print gdrcd_filter('out',$record['car1']+$record['bonus_car1']+$bonus_oggetti['BO1']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['stats']['car2']); ?>:
</div>
<div class="profilo_voce_valore">
<?php print gdrcd_filter('out',$record['car2']+$record['bonus_car2']+$bonus_oggetti['BO2']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['stats']['car3']); ?>:
</div>
<div class="profilo_voce_valore">
<?php print gdrcd_filter('out',$record['car3']+$record['bonus_car3']+$bonus_oggetti['BO3']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['stats']['car4']); ?>:
</div>
<div class="profilo_voce_valore">
<?php print gdrcd_filter('out',$record['car4']+$record['bonus_car4']+$bonus_oggetti['BO4']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['stats']['car5']); ?>:
</div>
<div class="profilo_voce_valore">
<?php print gdrcd_filter('out',$record['car5']+$record['bonus_car5']+$bonus_oggetti['BO5']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php print gdrcd_filter('out',$PARAMETERS['names']['stats']['hitpoints']); ?>:
</div>
<div class="profilo_voce_valore">
<?php print gdrcd_filter('out',$record['salute']).'/'.gdrcd_filter('out',$record['salute_max']); ?>
</div>
</div>
<div class="profilo_status">
<div class="profilo_status_label">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['status']); ?>:
</div>
<div class="profilo_status_valore">
<?php print gdrcd_filter('out',$record['stato']); ?>
</div>
</div>
</div><!-- Punteggi, salute, status, classe, razza. -->
<?php if($PARAMETERS['mode']['skillsystem']=='ON'){ //solo se è attiva la modalità skillsystem?>
<div class="elenco_abilita"><!-- Elenco abilità -->
<div class="titolo_box">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['skills']); ?>
</div>
<?php
//conteggio le abilità
$row=gdrcd_query("SELECT COUNT(*) FROM abilita WHERE id_razza=-1 OR id_razza= ".$record['id_razza']."");
$num=$row['COUNT(*)'];
//carico l'elenco delle abilità
$result=gdrcd_query("SELECT nome, car, id_abilita FROM abilita WHERE id_razza=-1 OR id_razza= ".$record['id_razza']." ORDER BY id_razza DESC, nome", 'result');
$count=0;
$total=0;?>
<div class="form_info"><?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['avalaible_xp']).': '.($px_totali_pg-$px_spesi);?></div>
<div class="div_colonne_abilita_scheda">
<table class="colonne_abilita_scheda"><tr>
<?php while($row=gdrcd_query($result, 'fetch')){
if ($count==0){print '<td><table>';}?>
<tr>
<td><div class="abilita_scheda_nome"><?php print gdrcd_filter('out',$row['nome']); ?></div></td>
<td>
<div class="abilita_scheda_car">
<?php print '('.gdrcd_filter('out',$PARAMETERS['names']['stats']['car'.$row['car']]).')'; ?>
</div>
</td>
<td><div class="abilita_scheda_tank"><?php print 0+gdrcd_filter('out',$ranks[$row['id_abilita']]); ?></div></td>
<td>
<div class="abilita_scheda_sub">
<?php /*Stampo il form di incremento se il pg ha abbastanza px*/
if((((($ranks[$row['id_abilita']]+1)*$PARAMETERS['settings']['px_x_rank'])<=($px_totali_pg-$px_spesi))&&
(gdrcd_filter('get',$_REQUEST['pg'])==$_SESSION['login'])&&
($ranks[$row['id_abilita']]<$PARAMETERS['settings']['skills_cap']))||
($_SESSION['permessi']>=MODERATOR)){ ?>
[<a href="main.php?page=scheda&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']) ?>&op=addskill&what=<?php print $row['id_abilita'] ?>">+</a>]
<?php if(($_SESSION['permessi']>=MODERATOR)&&
($ranks[$row['id_abilita']]>0)){ ?>
[<a href="main.php?page=scheda&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']) ?>&op=subskill&what=<?php print $row['id_abilita'] ?>">-</a>]
<?php } ?>
<?php } else { print ' ';} ?>
</div>
</td>
</tr>
<?php $count++; $total++;
if (($count>=ceil($num/2))||($total>=$num)){$count=0; print '</table></td>';}
}//while
gdrcd_query($result, 'free');
?>
</tr>
</table>
</div>
<div class="form_info"><?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['info_skill_cost']);?></div>
</div><!-- Elenco abilità -->
<?php } ?>
<div class="background"><!-- Background, affetti, robe varie -->
<div class="titolo_box">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['background']); ?>
</div>
<div class="body_box">
<?php
/** * Html or BBcode ?
* @author Blancks
*/
if ($PARAMETERS['mode']['user_bbcode'] == 'ON')
print gdrcd_bbcoder(gdrcd_filter('out',$record['descrizione']));
else
print $record['descrizione'];
?>
</div>
</div><!-- Background, affetti, robe varie -->
<div class="background"><!-- Background, affetti, robe varie -->
<div class="titolo_box">
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['relationships']); ?>
</div>
<div class="body_box">
<?php
/** * Html or BBcode ?
* @author Blancks
*/
if ($PARAMETERS['mode']['user_bbcode'] == 'ON')
print gdrcd_bbcoder(gdrcd_filter('out',$record['affetti']));
else
print $record['affetti'];
?>
</div>
</div><!-- Background, affetti, robe varie -->
<!--- AREA ADMIN --->
<?php if($_SESSION['permessi']>=MODERATOR){ ?>
<div class="log_report">
<?php /*report*/ ?>
</div>
<?php } ?>
</div>
<?php
} else { ?>
<!-- Link a piè di pagina -->
<div class="link_back">
<a href="main.php?page=scheda&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>"><?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
<?php }//else
}//else
/********* CHIUSURA SCHEDA **********/
}//else
?>
<?php }//else?>
<!-- embed src="<?php //print gdrcd_bbcoder(gdrcd_filter('out',$record['url_media'])); ?>" height="0" width="0"-->
<?php
if ($PARAMETERS['mode']['allow_audio'] == 'ON' && !$_SESSION['blocca_media'] && !empty($record['url_media']))
{
?>
<object data="<?php echo $record['url_media']; ?>" type="<?php echo $PARAMETERS['settings']['audiotype']['.'.strtolower(end(explode('.', $record['url_media'])))]; ?>" autostart="true" width="1" height="0">
<embed src="<?php echo $record['url_media']; ?>" autostart="true" hidden="true" width="1" height="0" />
</object>
<?php
}
?>
</div><!-- Pagina -->
Pagine → 1
25/05/2011 13:07:23
bukama ha scritto: Io a leggere le paginate di codice, non sono capace xD E ci perdo gli occhi e laddove non so come si chiamano le variabili in gioco, ancora meno.
E faccio una domanda differente: nel database, il dato è memorizzato correttamente, sulla Classe? Non vi si memorizza, magari refuso della duplicazione, quello della Razza?
E altrettanto, soprattutto questo, in lettura, leggi e stampi il dato della Classe, e non quello della Razza, sempre per un refuso della duplicazione delle funzionalità?
No no ^^, era palese che per "copia" volevo dare ad intendere, su "ispirazione" alla tabella razza, essa è stata opportunamente modificata, difatti i due parametri, in fase di registrazione vengono scritti in maniera ottimale sul database nella tabella personaggio...
Tutto funziona nella sintesi, tranne la scheda... Ho iniziato a pensare che sia un errore di id. le razze iniziano con un id base di 1000 ... le classi da 100, forse questa similitudine fa si che accada l'errore, può essere?
25/05/2011 13:15:58
Un errore, ad occhio sta proprio qui, nell'aggiunta iniziale che hai fatto:
<?php
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
print '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
$query = "SELECT personaggio.*, classe.sing_m, classe.sing_f, classe.id_classe, classe.bonus_car0, classe.bonus_car1, classe.bonus_car2, classe.bonus_car3, classe.bonus_car4, classe.bonus_car5 FROM personaggio LEFT JOIN classe ON personaggio.id_classe=classe.id_classe WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
}
/*******aggiunta che ho fatto io******/
{ $query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5 FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
//********Fino a qui*********/
Hai aperto una parentesi graffa senza capire il motivo e sovrascrivi la query di caricamento del personaggio che pesca i dati con join nella tabella gilde con una che pesca i dati con join nella tabella razze: è normale quindi che succede il problema da te descritto.
La soluzione è rimuovere ciò che hai fatto e inserire la join nella query di caricamento generale del pg:
<?php
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
print '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
#questa query va così aggiornata
$query = "SELECT personaggio.*, classe.sing_m, classe.sing_f, classe.id_classe, classe.bonus_car0, classe.bonus_car1, classe.bonus_car2, classe.bonus_car3, classe.bonus_car4, classe.bonus_car5, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5 FROM personaggio LEFT JOIN classe ON personaggio.id_classe=classe.id_classe LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
}
# Tutto quello che hai fatto qui va cancellato
/*******aggiunta che ho fatto io****
{ $query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5 FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
*******Fino a qui*********/
Fammi sapere un po come va ;-)
25/05/2011 13:26:04
blancks ha scritto: Un errore, ad occhio sta proprio qui, nell'aggiunta iniziale che hai fatto:
<?php
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
print '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
$query = "SELECT personaggio.*, classe.sing_m, classe.sing_f, classe.id_classe, classe.bonus_car0, classe.bonus_car1, classe.bonus_car2, classe.bonus_car3, classe.bonus_car4, classe.bonus_car5 FROM personaggio LEFT JOIN classe ON personaggio.id_classe=classe.id_classe WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
}
/*******aggiunta che ho fatto io******/
{ $query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5 FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
//********Fino a qui*********/
Hai aperto una parentesi graffa senza capire il motivo e sovrascrivi la query di caricamento del personaggio che pesca i dati con join nella tabella gilde con una che pesca i dati con join nella tabella razze: è normale quindi che succede il problema da te descritto.
La soluzione è rimuovere ciò che hai fatto e inserire la join nella query di caricamento generale del pg:
<?php
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
print '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
#questa query va così aggiornata
$query = "SELECT personaggio.*, classe.sing_m, classe.sing_f, classe.id_classe, classe.bonus_car0, classe.bonus_car1, classe.bonus_car2, classe.bonus_car3, classe.bonus_car4, classe.bonus_car5, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5 FROM personaggio LEFT JOIN classe ON personaggio.id_classe=classe.id_classe LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
}
# Tutto quello che hai fatto qui va cancellato
/*******aggiunta che ho fatto io****
{ $query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5 FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
*******Fino a qui*********/
Fammi sapere un po come va ;-)
Ti ringrazio molto, proverò subito e ti faccio sapere ^^
25/05/2011 13:35:24
Attenzione poi che i nomi dei campi selezionati con la query sono omonimi quindi o imposti un alias per distinguerli o li richiami dal vettore dei risultati con nometabella.nomecampo.
25/05/2011 13:44:18
blancks ha scritto: Attenzione poi che i nomi dei campi selezionati con la query sono omonimi quindi o imposti un alias per distinguerli o li richiami dal vettore dei risultati con nometabella.nomecampo.
Purtroppo la prima soluzione proposta, mi lancia questo errore :
"Non è stato specificato il none del PG oppure il PG non esiste."
Proverò a seguire questo secondo suggerimento, grazie ancora ^^
25/05/2011 13:47:38 e modificato da blancks il 25/05/2011 13:51:40
aliprando ha scritto: [quote]blancks ha scritto: Attenzione poi che i nomi dei campi selezionati con la query sono omonimi quindi o imposti un alias per distinguerli o li richiami dal vettore dei risultati con nometabella.nomecampo.
Purtroppo la prima soluzione proposta, mi lancia questo errore :
"Non è stato specificato il none del PG oppure il PG non esiste."
Proverò a seguire questo secondo suggerimento, grazie ancora ^^[/quote]
C'è qualcosa che non quadra allora, perché ricade in questa casistica:
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
print '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
}
Di mio, ti suggerirei di provare a modificare il controllo in questa maniera:
if (empty($_REQUEST['pg'])){
...
edit: pardon, per abitudine ho fatto una cappellata, ho aggiornato il controllo che ti ho suggerito togliendo il ! davanti ad empty.
25/05/2011 22:58:56
Non ti ho risposto prima perché sono stato impegnato tutta la giornata su attività "extravirtuali". Rinnovo i miei ringraziamenti verso la tua cortesia, però il problema non riesco a risolverlo ^^.
Proverò una soluzione che mi ha suggerito un amico, nel caso dovesse andare a buon fine la renderò disponibile per tutti ^^.
29/05/2011 19:06:03
Per problemi di tempo non ho potuto avvertire prima, il problema è stato risolto ^^.
La gentile collaborazione di blancks è stata eccellente e risolutiva, come sempre il tempo che posso dedicare agli hobby è brevissimo, e non mi ero accorto dell'errore più palese, errore che fra le altre cose mi avevate consigliato di verificare.
La prima soluzione postata da blancks, quindi era quella giusta. ^^ dovevo impostare in maniera diversa i parametri delle classi al fine che non risultassero omonimi a quelli di razza.
Per quanto mi riguarda, ringrazio tutti e potete chiudere il post . :)
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!
World of the Sea Battle ↗
Hero Wars ↗
CRSED: F.O.A.D. ↗
AlterEgo ↗
Project Entropy ↗
Crossout ↗
Imperion ↗