Barra di Avanzamento in base a valori prelevati da database
Barra di Avanzamento in base a valori prelevati da database postato il 31/01/2016 22:50:31 nel forum programmazione, open source e hosting
Salve a tutti!
Sono di nuovo a rompervi le scatole - non uccidetemi, vi prego!
Questa volta, quello che vorrei fare è creare una barra di avanzamento, (o progress bar, se preferite), che vada riempiendosi man mano.
Come dice il titolo, il valore di avanzamento andrebbe prelevato dal database - in particolare, da un field della tabella personaggio.
Il problema è che sono in alto, altissimo mare.
Qualcuno saprebbe darmi qualche dritta su come poter procedere?
Pagine → 1 2
31/01/2016 23:50:40 e modificato da syon88 il 01/02/2016 00:01:33
Allora tu prendi il campo che hai come "massimo" dalla scheda con il select all'inizio, poi:
$barra=floor((100/$record['massimale])*$record['esperienza']);
Ti dovrebbe restituire un numero che è la percentuale esatta di avanzamento (in questo caso dell'esperienza, ma ti basta cambiare quel dato con quello che serve a te.
Per la creazione della barra in se, cerco qualcosa appena ho tempo ^^
EDIT:
trovato! Crei due div uno dentro all'altro e poi a quello interno stabilisci la width in percentuale:
<div>
<div class="barra_progressi" style="width: %<?php echo $barra; ?>;"></div>
</div>
Ricordati di dare un colore di sfondo al div interno ;).
31/01/2016 23:55:28
Il fatto è che non ho un massimo.
Mi spiego: ho creato questo nuovo field - reputazione - e l'ho inserito nella tabella personaggio.
Poi, ho settato la pagina di modifica scheda in modo che gli utenti autorizzati, da moderatore in sù, possano modificare questo parametro quando necessario.
Quindi, ho fatto stampare questo valore nella pagina "principale" della scheda, (con "principale" intendo la pagina della scheda, che ho diviso in diverse sottopagine, contenente avatar, dati anagrafici, razza, sesso, data d'iscrizione, etc.) in questo formato: n°/1000.
Il 1000, che è ancora un valore indicativo, non è settato da nessuna parte, però.
01/02/2016 00:03:55
Allora ti basta moltiplicare il valore per 0,1 ed hai la percentuale di avanzamento con un massimale fisso di 1000.
01/02/2016 00:07:41
Ok, quindi, vediamo se ho capito bene.
Inserisco questo:
$barra=floor((100/$record['massimale'])*$record['esperienza']);
dopo
$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, razza.bonus_car6, provenienza.img_chat AS img_chat, provenienza.sing_m AS prov_m, provenienza.sing_f AS prov_f, provenienza.id_provenienza FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza LEFT JOIN provenienza ON personaggio.id_provenienza=provenienza.id_provenienza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
Dopodichè, inserisco questo:
<div>
<div class="barra_progressi" style="width: %<?php echo $barra; ?>;"></div>
</div>
lì dove voglio far apparire la progress bar.
Per quanto riguarda la moltiplicazione per 0,1... help?
01/02/2016 00:10:47 e modificato da syon88 il 01/02/2016 00:12:03
maclay ha scritto: Ok, quindi, vediamo se ho capito bene.
Inserisco questo:
dopo
$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, razza.bonus_car6, provenienza.img_chat AS img_chat, provenienza.sing_m AS prov_m, provenienza.sing_f AS prov_f, provenienza.id_provenienza FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza LEFT JOIN provenienza ON personaggio.id_provenienza=provenienza.id_provenienza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
$barra=floor((100/1000)*$record['popolarita']);
Dopodiché, inserisco questo:
<div>
<div class="barra_progressi" style="width: %<?php echo $barra; ?>;"></div>
</div>
lì dove voglio far apparire la progress bar.
0,1 è equivalente a 100/1000...
01/02/2016 00:14:15
Ok, vado a nascondermi sotto una roccia e vedo di non uscirne per il prossimo millennio.
Sono più stravolta di quanto pensassi.
Ora faccio una prova e vediamo se funzia tutto come si deve.
Grazie mille per la pazienza e l'aiuto, syon!
01/02/2016 00:18:23
Uhm, niente da fare.
Mi ritorna un div invisibile:
<div class="barra_progressi" style="width: %0;"></div>
01/02/2016 00:20:10
maclay ha scritto: Uhm, niente da fare.
Mi ritorna un div invisibile:
<div class="barra_progressi" style="width: %0;"></div>
Se il parametro da te evocato è a 0 è normale che sia invisibile ^^
Prova a metterlo a 500 (dovrebbe darti il 50% come width)
poi comunque devi stabilire nei css barra_progressi come classe ^^
01/02/2016 00:22:21 e modificato da maclay il 01/02/2016 00:22:56
Tecnicamente, è settato a 60...
Eh sì sì, ho messo un qualcosa di veloce e basilare nel CSS, giusto per fare la prova.
01/02/2016 00:23:54
maclay ha scritto: Tecnicamente, è settato a 60...
Eh sì sì, ho messo un qualcosa di veloce e basilare nel CSS, giusto per fare la prova.
Hai cambiato il nome del campo messo da me, con quello che hai tu nel db?
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
AlterEgo ↗
Sea of Conquest ↗
Enlisted ↗
Tibia ↗
War Thunder ↗
Imperion ↗
RAID Shadow Legends ↗
Hero Wars ↗