[RISOLTO][GDRCD 5.4] Pagina descrizione abilità
[RISOLTO][GDRCD 5.4] Pagina descrizione abilità postato il 07/08/2016 21:08:28 nel forum programmazione, open source e hosting e modificato da sigridhr il 12/08/2016 10:35:30
Ho creato una pagina in popup con l'elenco delle abilità, cliccando sull'abilità carica la pagina con solo la descrizione di quella con un menù accordion. La medesimo cosa l'ho realizzata per le razze, tuttavia c'è qualcosa nella query delle abilità che non fa caricare i dati dal db, perché la pagina che carica è vuota.
<div class="page_body">
<?php /*HELP: */
$query="SELECT nome, abilita.id_abilita, car, descrizione, liv1, liv2, liv3, liv4, liv5, liv6, liv7, liv8, liv9, liv10 FROM abilita WHERE id_abilita = ".gdrcd_filter('num',$_REQUEST['id_abilita'])."";
$result=gdrcd_query($query,'result');?>
<div class="elenco_record_gioco">
<?php while($row=gdrcd_query($result, 'fetch')){ ?>
<div class="casella_titolo"><h2>
<?php echo $row['nome']; ?></h2>
</div>
<div id="accordion">
<h3><?php echo gdrcd_filter('out',$MESSAGE['interface']['administration']['skills']['infos']); ?></h3>
<p><?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['descrizione'])); ?></p>
<h3><?php echo gdrcd_filter('out',$MESSAGE['interface']['administration']['skills']['liv1']); ?></h3>
<p><?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['liv1'])); ?></p>
</div>
<?php }//while
gdrcd_query($result, 'free');
?>
</div>
Nella pagina delle razze, la stessa query invece funziona correttamente.
<?php /*HELP: */
$query="SELECT nome_razza, razza.id_razza, sing_m, sing_f, descrizione, comportamento, vita, malus, rigenerazione, sensi, alimentazione, riproduzione, gerarchia, lavori, rapp_sociali, rapp_familiari, hobby, usi_costumi, storia, mito, religione, relazione_razze, cambio_razza, skill_evo, bonus_iscr, url_site, bonus_car0, bonus_car1, bonus_car2, bonus_car3, bonus_car4, bonus_car5, immagine, icon FROM razza WHERE id_razza = ".gdrcd_filter('num',$_REQUEST['id_razza'])."";
$result=gdrcd_query($query,'result');?>
Qualcuno sa aiutarmi?
Grazie.
Pagine → 1 2
08/08/2016 17:14:12
Nessuno che può darmi una mano? 😭
09/08/2016 03:11:44
Non stampa proprio niente oppure ti da qualche messaggio di errore che magari non hai visto? Se è nero su sfondo nero, può capitare...
Inoltre, potresti postare il resto del codice della pagina delle razze? Così vediamo se c'è qualche discrepanza anche lì, eventualmente.
09/08/2016 23:56:15 e modificato da sigridhr il 09/08/2016 23:58:21
maclay ha scritto: Non stampa proprio niente oppure ti da qualche messaggio di errore che magari non hai visto? Se è nero su sfondo nero, può capitare...
No, non stampa proprio nulla, se non il pulsante indietro della pagina e nessun messaggio di errore.
Nella pagina razze aveva avuto lo stesso problema perché sbagliavo il WHERE prima del filtro, poi ho risolto, ma quello delle abilità a logica dovrebbe essere corretto, per cui non capisco dove sia l'errore.
La pagina delle razze funzionante è questa
<div class="page_body">
<?php /*HELP: */
$query="SELECT nome_razza, razza.id_razza, sing_m, sing_f, descrizione, comportamento, vita, malus, rigenerazione, sensi, alimentazione, riproduzione, gerarchia, lavori, rapp_sociali, rapp_familiari, hobby, usi_costumi, storia, mito, religione, relazione_razze, cambio_razza, skill_evo, bonus_iscr, url_site, bonus_car0, bonus_car1, bonus_car2, bonus_car3, bonus_car4, bonus_car5, immagine, icon FROM razza WHERE id_razza = ".gdrcd_filter('num',$_REQUEST['id_razza'])."";
$result=gdrcd_query($query,'result');?>
<div class="elenco_record_gioco">
<?php while($row=gdrcd_query($result, 'fetch')){ ?>
<div class="casella_titolo"><h2>
<img class="razza_icon"
src="themes/<?php echo $PARAMETERS['themes']['current_theme'] ?>/imgs/races/<?php echo $row['immagine']; ?>" />
<?php if(empty($row['url_site'])===TRUE){
echo $row['nome_razza'].' ('.$row['sing_m'].', '.$row['sing_f'].')';
} else {
echo '<a href="http://'.$row['url_site'].'">'.gdrcd_filter('out',$row['nome_razza']).'</a> ('.gdrcd_filter('out',$row['sing_m']).', '.gdrcd_filter('out',$row['sing_f']).')';
} ?></h2>
</div>
<div id="accordion">
<h3><?php echo gdrcd_filter('out',$MESSAGE['interface']['administration']['races']['infos']); ?></h3>
<p><?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['descrizione'])); ?></p>
<h3><?php echo gdrcd_filter('out',$MESSAGE['interface']['administration']['races']['comportamento']); ?></h3>
<p><?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['comportamento'])); ?></p>
<h3><?php echo gdrcd_filter('out',$MESSAGE['interface']['administration']['races']['vita']); ?></h3>
<p><?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['vita'])); ?></p>
</div>
<?php }//while
gdrcd_query($result, 'free');
?>
10/08/2016 01:28:28
Ho guardato e riguardato ed effettivamente non noto discrepanze tra le due query ed entrambe appaiono corrette.
Quello che mi lascia perplessa è il fatto che non stampi nemmeno i messaggi dal vocabolario, come per esempio:
<?php echo gdrcd_filter('out',$MESSAGE['interface']['administration']['skills']['infos']); ?>
Prova a sostituire nella query abilita.id_abilita con id_abilita e vediamo se ti da un qualche tipo di errore - come dovrebbe - oppure se continua a non stampare nulla.
10/08/2016 02:18:07 e modificato da sigridhr il 10/08/2016 02:21:36
maclay ha scritto: Prova a sostituire nella query abilita.id_abilita con id_abilita e vediamo se ti da un qualche tipo di errore - come dovrebbe - oppure se continua a non stampare nulla.
Una delle prime prove che ho fatto, ma no, non mi dà errore, ma continua a non stampare nulla.
Questo è uno screen delle due finestre, giusto per far capire meglio il risultato.
10/08/2016 02:48:58 e modificato da blancks il 10/08/2016 02:50:46
maclay ha scritto:
Quello che mi lascia perplessa è il fatto che non stampi nemmeno i messaggi dal vocabolario, come per esempio..
Quel dato è stampato all'interno del blocco while.
In questo caso, il blocco while effettua un giro per ogni riga recuperata dalla query spedita al database.
Se non viene stampato niente è perché la query non ritorna risultati.
I problemi possono essere due:
. La query è formulata male
. Il dato passato come parametro di ricerca alla query non arriva correttamente alla pagina per qualche motivo
SELECT .. FROM razza WHERE id_razza = ".gdrcd_filter('num',$_REQUEST['id_razza'])
Non ho controllato che tutti i campi nel select appartengano alla tabella "razza", nel caso non ne fossi sicura ti chiedo di ricontrollare per bene ( inoltre quando nella query è coinvolta un unica tabella è superfluo fare razza.nomecampo ;-) ), ma concettualmente mi sembra giusta.
Assumendo quindi che non ci siano errori nelle colonne perché nello screen che hai mostrato non c'è il classico GDRCD MySql Error, per me l'ipotesi più credibile è che alla pagina non arrivi il dato id_razza.
Visto che hai copiato il sistema riprendendolo dalle abilità, sei sicura che il dato nella url non arrivi come &id_abilita=... al posto di &id_razza=... ?
Se sei sicura di aver avuto questa accortezza, la prova successiva che ti invito a fare è di stampare a video la query prodotta nel codice:
$query="SELECT nome_razza, razza.id_razza, sing_m, sing_f, descrizione, comportamento, vita, malus, rigenerazione, sensi, alimentazione, riproduzione, gerarchia, lavori, rapp_sociali, rapp_familiari, hobby, usi_costumi, storia, mito, religione, relazione_razze, cambio_razza, skill_evo, bonus_iscr, url_site, bonus_car0, bonus_car1, bonus_car2, bonus_car3, bonus_car4, bonus_car5, immagine, icon FROM razza WHERE id_razza = ".gdrcd_filter('num',$_REQUEST['id_razza'])."";
echo $query; // tramite questo
A questo punto prova ad aprire la pagina, copia la query che vedi a video e riportacela qui.
10/08/2016 15:19:45 e modificato da sigridhr il 10/08/2016 15:20:45
Blanks, hai invertito le cose, ma la sostanza è quella. La pagina per le razze mi funziona (screen a sx del commento sopra), quello delle abilità no (screen a dx del commento sopra).
In abilità sì, è presente il campo "id_abilita" e i richiami copiati dalla pagina delle razze sono stati tutti sostituiti passando da "razza" ad "abilita".
Ho fatto la prova che mi hai chiesto, questo è lo screen.
In effetti mi restituisci il parametro a 0, mentre io ho selezionato un'abilità che dovrebbe avere un id.
10/08/2016 15:31:07 e modificato da blancks il 10/08/2016 15:32:11
sigridhr ha scritto: Blanks, hai invertito le cose, ma la sostanza è quella.
Pardon, sarà stata l'ora. Comunque si :p
In effetti mi restituisci il parametro a 0, mentre io ho selezionato un'abilità che dovrebbe avere un id.
Quindi è la seconda casistica che ho ipotizzato.
L'output è 0 molto probabilmente perché la funzione di filtro ha fatto il suo lavoro, forse è arrivato qualcosa di imprevisto come id_abilita.
Prova a stamparlo a questo modo, subito prima del print della query:
var_dump($_REQUEST['id_abilita']);
In questo modo vediamo cosa viene passato alla pagina prima di farlo elaborare da gdrcd_filter.
In qualsiasi caso il problema non è nella pagina in se, ma chi passa il dato a quella pagina.
id_abilita lo fai arrivare tramite url o tramite form ?
10/08/2016 16:11:39
blancks ha scritto: Prova a stamparlo a questo modo, subito prima del print della query:
var_dump($_REQUEST['id_abilita']);
In questo modo vediamo cosa viene passato alla pagina prima di farlo elaborare da gdrcd_filter.
In qualsiasi caso il problema non è nella pagina in se, ma chi passa il dato a quella pagina.
id_abilita lo fai arrivare tramite url o tramite form ?
Il dato arriva da un'altra pagina, quindi tramite url.
Questo lo screen della prova, che infatti esce "null"

Questo invece è l'invio che parte dall'altra pagina in questione.
<a href="popup.php?page=user_abilita2&id_razza=<?php echo $row['id_abilita']; ?>">
<h3><?php echo gdrcd_filter('out',$row['nome']); ?> (<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['car'.$row['car']]); ?>)</h3>
</a>
10/08/2016 16:15:21
"NULL" significa infatti che non è definito, non invii nessun id_abilita alla pagina.
Infatti:
<a href="popup.php?page=user_abilita2&id_razza=<?php echo $row['id_abilita']; ?>">
<h3><?php echo gdrcd_filter('out',$row['nome']); ?> (<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['car'.$row['car']]); ?>)</h3>
</a>
Dove ti ho evidenziato spedisci il parametro in input come id_razza ancora.
Sostituisci la definizione e riprova ;-)
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!
Storie di Agarthi ↗
Wuthering Waves ↗
Neverness to Everness ↗
Crossout ↗
Enlisted ↗
Sea of Conquest ↗
Seconda Era ↗
New Orleans ↗
World of Tanks ↗