Buongiorno!Gentilmente avrei bisogno di una mano con il codice relativo alle abilità per le gilde. Ho seguito alcune discussioni precedenti, ma mi sono purtroppo arenata quando si tratta di far vedere le abilità nella Scheda del personaggio.Ho creato le varie tabelle nel db su altervista relative alle capacità (così ho deciso di battezzare le abilità legate ad una gilda), basandomi su quelle delle abilità di razza. Ho creato la pagina gestione_capacita per creare le varie skill e funziona. Purtroppo dopo aver creato la pagina scheda_capacita non riesco a capire perchè non mi stampi le varie skill di gilda come invece fa per quelle di razza.Il sistema mi da questo errore quando provo ad andare sulla pagina corrispondente:
GDRCD MySQLi Error [File: scheda_cap.inc.php; Line: 260]Error Code: 1064Error String: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near " at line 1Error Detail: SELECT COUNT(*) FROM cap WHERE id_gilda=-1 OR id_gilda=
<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 pgif (isset($_REQUEST['pg'])===FALSE){ echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';} else { $query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3 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'); //Se non esiste il pg if (gdrcd_query($result, 'num_rows')==0){echo '<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 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')){ echo '<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 echo gdrcd_filter('url',$_REQUEST['pg']) ?>" method="post"> <input type="hidden" value="<?php echo strftime('%Y'); ?>" name="year" /> <input type="hidden" value="<?php echo strftime('%m'); ?>" name="month" /> <input type="hidden" value="<?php echo 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 echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['unexile']); ?> </div> <div class="form_submit"> <input type="submit" value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['forms']['submit']); ?>" /> </div> </form> </div></div> <?php } } else { $px_totali_pg=$record['esperienza']; //carico le sole capacità del pg $result=gdrcd_query("SELECT id_cap, grado FROM clgpersonaggiocap WHERE nome='".gdrcd_filter('in',$_REQUEST['pg'])."'", 'result'); $px_spesi=0; while ($row=gdrcd_query($result, 'fetch')){ /*Costo in px della singola capacità*/ $px_abi=$PARAMETERS['settings']['px_x_rank']*(($row['grado']*($row['grado']+1))/2); /*Costo totale*/ $px_spesi+=$px_cap; $ranks[$row['id_cap']]=$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 clgpersonaggiocap (id_cap, nome, grado) VALUES (".gdrcd_filter('num',$_REQUEST['what']).", '".gdrcd_filter('in',$_REQUEST['pg'])."', 1)"; $ranks[$_REQUEST['what']]=1; #echo $query; } else { $ranks[$_REQUEST['what']]++; $query="UPDATE clgpersonaggiocap SET grado = ".$ranks[$_REQUEST['what']]." WHERE id_cap = ".gdrcd_filter('num',$_REQUEST['what'])." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'"; }//else gdrcd_query($query); echo '<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 clgpersonaggiocap WHERE id_cap = ".$_REQUEST['what']." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' LIMIT 1"; $ranks[$_REQUEST['what']]=0; } else { $ranks[$_REQUEST['what']]--; $query="UPDATE clgpersonaggiocap SET grado = ".$ranks[$_REQUEST['what']]." WHERE id_cap = ".$_REQUEST['what']." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'"; }//else gdrcd_query($query); echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>'; }//ifif (isset($_REQUEST['op'])===FALSE){?><!--- SCHEDA DEL PERSONAGGIO ---><div class="page_title"> <div style=" border: 1px solid #968e6a; background-image: url(/themes/advanced/imgs/sfondino.png); margin-bottom: 3px; font-family: 'Alegreya Sans SC', sans-serif; box-shadow: 1px 1px #968e6a; text-align: center; color: #968e6a; text-shadow: 1px 1px #000;"><!-- Menu scheda --> <?php include ('scheda/menu.inc.php'); ?> </div></div><div class="page_body"><?php/** * Controllo e avviso che è ora di cambiare password * @author Blancks*/if ($PARAMETERS['mode']['alert_password_change']=='ON'){ $six_months = 15552000; $ts_signup = strtotime($record['data_iscrizione']); $ts_lastpass = (int)strtotime($record['ultimo_cambiopass']); if ($ts_lastpass+$six_months < time() && $record['nome'] == $_SESSION['login']) { echo '<div class="warning">'; if ($ts_signup+$six_months < time()) echo $MESSAGE['warning']['changepass']; else echo $MESSAGE['warning']['changepass_signup']; echo '</div>'; }}?><?php if($PARAMETERS['mode']['skillsystem']=='ON'){ //solo se è attiva la modalità skillsystem?> <div class="elenco_abilita"><!-- Elenco capacità --> <div class="titolo_box"> <?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['skills']); ?> </div><?php //conteggio le capacità $row=gdrcd_query("SELECT COUNT(*) FROM cap WHERE id_gilda=-1 OR id_gilda= ".$record['id_gilda'].""); $num=$row['COUNT(*)']; //carico l'elenco delle capacità $result=gdrcd_query("SELECT nome, car, id_cap, tipo, descrizione FROM cap WHERE id_gilda=-1 OR id_gilda= ".$record['id_gilda']." ORDER BY id_gilda DESC, nome", 'result'); $count=0; $total=0;?> <div class="form_info"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['avalaible_xp']).': <span id="skillpoints">'. ($px_totali_pg-$px_spesi) .'</span>'; ?><br> <?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['info_skill_cost']);?></div></div> <div class="div_colonne_cap_scheda"> <table class="colonne_cap_scheda" style=" text-align: justify; border-collapse: collapse;"><tr> <?php while($row=gdrcd_query($result, 'fetch')){ if ($count==0){echo '<td>';}?> <tr style=" font-style: italic; font-family: Tahoma; background: #480b1594; text-shadow: 1px 1px #32090e; border: 1px solid #968e6a;"> <td style="padding: 2px;"><div class="cap_scheda_nome"><?php echo gdrcd_filter('out',$row['tipo']); ?>: <?php echo gdrcd_filter('out',$row['nome']); ?></div> </td> <td > <div class="cap_scheda_car"> <?php echo '('.gdrcd_filter('out',$PARAMETERS['names']['stats']['car'.$row['car']]).')'; ?> </div> </td> <td style="padding: 2px;"><div class="cap_scheda_tank"><span class="skill" data-skillcurvalue="<?php echo 0+gdrcd_filter('out',$ranks[$row['id_cap']]); ?>" data-skillid="<?php echo $row['id_cap'] ?>">Livello: <?php echo 0+gdrcd_filter('out',$ranks[$row['id_cap']]); ?></span></div></td> <td style="padding: 2px;"> <div class="cap_scheda_sub"> <?php /*Stampo il form di incremento se il pg ha abbastanza px*/ if((((($ranks[$row['id_cap']]+1)*$PARAMETERS['settings']['px_x_rank'])<=($px_totali_pg-$px_spesi))&& (gdrcd_filter('get',$_REQUEST['pg'])==$_SESSION['login'])&& ($ranks[$row['id_cap']]<$PARAMETERS['settings']['skills_cap']))|| ($_SESSION['permessi']>=MODERATOR)){ ?> [<a href="main.php?page=scheda_cap&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']) ?>&op=addskill&what=<?php echo $row['id_cap'] ?>">+</a>] <?php if(($_SESSION['permessi']>=MODERATOR)&& ($ranks[$row['id_cap']]>0)){ ?> [<a href="main.php?page=scheda_cap&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']) ?>&op=subskill&what=<?php echo $row['id_cap'] ?>">-</a>] <?php } ?> <?php } else { echo ' ';} ?> </div> </td> </tr> <tr><td class="casella_elemento" style="padding:5px;" colspan="4"><div><?php echo gdrcd_filter('out',$row['descrizione']); ?></div><br></td></tr> <?php $count++; $total++; if (($count>=ceil($num/2))||($total>=$num)){$count=0; echo '</td></tr>';} }//while gdrcd_query($result, 'free'); ?> </table> </div> </div><!-- Elenco capacità --> <script type="text/javascript"> var gdrcdSkills = new gdrcdSkills( '#skillpoints', '.skill', '.skill_incr', '.skill_decr', function(rank) { return <?php echo gdrcd_filter('num', $PARAMETERS['settings']['px_x_rank']); ?> * rank; } ); <?php if ($_SESSION['permessi']>=MODERATOR) { ?> gdrcdSkills.allowMasterDecrement(true); <?php } ?> var skillsInput = document.getElementById('skillsinput'), skillsSaveButton = document.getElementById('saveskills'), defaultSkillsValue = gdrcdSkills.exportSkillsValue(); gdrcdSkills.onSkillChange(function() { var newSkillsValue = gdrcdSkills.exportSkillsValue(); skillsInput.value = newSkillsValue; if (newSkillsValue !== defaultSkillsValue) { skillsSaveButton.removeAttribute('disabled'); } else { skillsSaveButton.setAttribute('disabled', ''); } }); </script><?php } ?><!--- 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_cap&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a></div><?php }//else}//else/********* CHIUSURA SCHEDA **********/ }//else?><?php }//else?><!-- embed src="<?php //echo gdrcd_bbcoder(gdrcd_filter('out',$record['url_media'])); ?>" height="0" width="0"--><?php //Impedisci XSS nella musica $record['url_media']=gdrcd_filter('fullurl',$record['url_media']); 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"> <embed src="<?php echo $record['url_media']; ?>" autostart="true" hidden="true" /></object><!--[if IE9]><embed src="<?php echo $record['url_media']; ?>" autostart="true" hidden="true" /><![endif]--><?php }?></div><!-- Pagina -->
Pagine → 1
04/02/2021 10:31:23
Error Detail: SELECT COUNT(*) FROM cap WHERE id_gilda=-1 OR id_gilda=
04/02/2021 16:24:38
nobara ha scritto: ...
$row=gdrcd_query("SELECT COUNT(*) FROM cap WHERE id_gilda=-1 OR id_gilda= ".$record['id_gilda']."");
<?php //cerco le gilde a cui è affiliato il personaggio$guilds=gdrcd_query("SELECT ruolo.nome_ruolo, ruolo.gilda, ruolo.immagine, gilda.visibile, gilda.nome, gilda_id_gilda 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'); while ($row_guilds = gdrcd_query($guilds, 'fetch')){ //conteggio le capacità$row=gdrcd_query("SELECT COUNT(*) FROM cap WHERE id_gilda=-1 OR id_gilda= ".$row_guilds['id_gilda']."");$num=$row['COUNT(*)'];}
oscar ha scritto: Error Detail: SELECT COUNT(*) FROM cap WHERE id_gilda=-1 OR id_gilda=Ma id_gilda può essere impostato a -1? Non è un campo univoco?
Utente di servizio a cui vengono attribuiti sul forum i post degli utenti che si sono cancellati dal portale
04/02/2021 22:44:41
hunt ha scritto: nobara ha scritto: ...potrebbe quindi esserti di aiuto un richiamo del genere:<?php //cerco le gilde a cui è affiliato il personaggio$guilds=gdrcd_query("SELECT ruolo.nome_ruolo, ruolo.gilda, ruolo.immagine, gilda.visibile, gilda.nome, gilda_id_gilda 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'); while ($row_guilds = gdrcd_query($guilds, 'fetch')){ //conteggio le capacità$row=gdrcd_query("SELECT COUNT(*) FROM cap WHERE id_gilda=-1 OR id_gilda= ".$row_guilds['id_gilda']."");$num=$row['COUNT(*)'];}prova a vedere se così risolvi la situazione
GDRCD MySQLi Error [File: scheda_cap.inc.php; Line: 160]Error Code: 1064Error String: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1Error Detail: SELECT COUNT(*) FROM cap WHERE id_gilda=-1 OR id_gilda=
nobara ha replicato, in sostanza, la tabella delle abilità sostituendo il valore id_razza che può essere -1 quando non è assegnato a nessuna razza; id_razza=numero, quando si ha una razza a cui è dedicato.Deve aver fatto la stessa cosa ma con le gilde, mi pare di aver compreso. Quindi in sostanza non è un campo univoco
04/02/2021 23:29:53
Ti direi, a questo punto, di togliere le condizioni per il COUNT delle abilità, a meno che tu non voglia aver il numero di abilità disponibile. Quello, provvisoriamente, toglierebbe l'errore; almeno prova a vedere se per caso compromette la funzionalità della pagina, se non dovesse compromettere la funzionalità della pagina, prova a lasciarlo così in attesa di qualcuno con una soluzione. Mi spiace non essere stata utile 😟
05/02/2021 09:07:04
hunt ha scritto: Ti direi, a questo punto, di togliere le condizioni per il COUNT delle abilità, a meno che tu non voglia aver il numero di abilità disponibile. Quello, provvisoriamente, toglierebbe l'errore; almeno prova a vedere se per caso compromette la funzionalità della pagina, se non dovesse compromettere la funzionalità della pagina, prova a lasciarlo così in attesa di qualcuno con una soluzione. Mi spiace non essere stata utile 😟
Discussione seguita da: » nobara