Stelline nel regolamento [GDR-CD] [Risolto]
Stelline nel regolamento [GDR-CD] [Risolto] postato il 30/08/2015 19:10:32 nel forum programmazione, open source e hosting e modificato da fantamonterotondo il 04/09/2015 22:25:10
Ciao a tutti, vi espongo il mio problema:
Vorrei mettere in ogni sezione del regolamento un punteggio a 5 stelline (per valutarne la completezza e l'utilità) utilizzando solo css, php e html, con ovvia partecipazione del database.
Per ora è articolato così:
<?php
$query = "SELECT * FROM votazioni WHERE pagina = '/main.php?page=regolamento1'";
$result = gdrcd_query($query, 'result');
?>
<?php while($row=gdrcd_query($result, 'fetch')){ ?>
<div class="panels_box">
<?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['voto'])); ?>
<?php }//while ?>
<?php echo gdrcd_filter('out',$row['voto']); ?>
</p>
</div>
E mi dice i due voti che ho messo come prova sul database (3 e 5).
Ovviamente alla parte grafica e il voto vero e proprio lo faccio dopo...
Il dubbio è ora come faccio a far visualizzare la media dei voti?
Conosco mediamente la parte array della cosa con numeri normali, ma senza sapere quanti numeri effettivi e come stamparli nel codice ho un blocco.
Grazie <3
Pagine → 1
30/08/2015 20:17:47
Se devi fare una media di voti...
supponendo un array di tipo
$voti = array( 3,2,3,5,6,4,2,3,4,4 );
puoi fare
$media = array_sum($voti)/count($voti)
30/08/2015 20:31:42
mrpanda ha scritto: Se devi fare una media di voti...
supponendo un array di tipo
$voti = array( 3,2,3,5,6,4,2,3,4,4 );
puoi fare
$media = array_sum($voti)/count($voti)
Sì, qualcosa del genere... l'unico problema sono i numeri. Nel tuo caso:( 3,2,3,5,6,4,2,3,4,4 ) ma nel mio ( ?,?,?,?,?,?,?,?,?,? ).
Il mio problema è semplicemente come creare un array con i numeri che sono nel database, che potrebbero essere 2 come 2'000.
Come ce li metto? ç_ç
30/08/2015 20:43:46
Non conosco le funzioni di gdrcd, ma credo che basti aggiungere la riga:
$voti = array();
per inizializzare l'array dei voti. E poi nel ciclo while lo popoli, scrivendo:
$voti[] = $row['voto'];
Così credo:
<?php
$voti = array();
$query = "SELECT * FROM votazioni WHERE pagina = '/main.php?page=regolamento1'";
$result = gdrcd_query($query, 'result');
?>
<?php while($row=gdrcd_query($result, 'fetch')){ ?>
<div class="panels_box">
<?php echo
$voti[] = $row['voto'];
gdrcd_bbcoder(gdrcd_filter('out',$row['voto'])); ?>
<?php }//while ?>
<?php echo gdrcd_filter('out',$row['voto']); ?>
</p>
</div>
30/08/2015 20:51:56
Nella pagina non appare niente. :(
31/08/2015 15:09:13
Lo riposto perché ho cambiato il nome della pagina >_<
<?php
$voti = array();
$query = "SELECT * FROM votazioni WHERE pagina = '/index.php?page=index&content=user_regolamento'";
$result = gdrcd_query($query, 'result');
?>
<?php while($row=gdrcd_query($result, 'fetch')){ ?>
<div class="panels_box">
<?php echo
$voti[] = $row['voto'];
gdrcd_bbcoder(gdrcd_filter('out',$row['voto'])); ?>
<?php }//while ?>
<?php echo gdrcd_filter('out',$row['voto']); ?>
</p>
</div>
Questa è l'immagine sia della tabella sia del suo contenuto (sono due pagine separate).
31/08/2015 21:39:21
Per fare le medie devi soltanto fare come ti avevo detto nel primo post, prima di stampare tutto a video.
Fai il ciclo per fare il fatch del risultato del db, andando a riempire l'array "$arrVoti".
$media = array_sum($arrVoti)/count($arrVoti);
Poi dopo stampi con un "echo $media;" li dove ti serve.
01/09/2015 02:09:53
Funziona *.* grazie mille!!
04/09/2015 00:54:41 e modificato da fantamonterotondo il 04/09/2015 00:55:14
Okay >_< scusate il disturbo ma riguardo le stelline ho un problema... nella pagina di inserimento del voto, per la precisione. Mi ci sto scontrando da tre giorni, modificando e rileggendo ma proprio non ne vengo a capo...
<div class="page_body">
<?php
if ($confirm_updating)
{
if(isset($_POST['op'])===TRUE) { ?>
<div class="panels_box">
<?php
} ?>
</div>
<?php
$query = "SELECT * FROM votazioni WHERE votazioni.pagina = '/main.php?page=iscrizione1'";
$result = gdrcd_query($query, 'result');
$record = gdrcd_query($result, 'fetch');
if ($_SESSION['login']==$record['nome']){
?> Hai già votato per questa pagina! <?php } else { ?>
<div class="pagina_iscrizione">
<div class="page_title"><h2>
Vota l'ultilità di questa pagina!
</h2></div>
<div class="page_body">
<?php /**** Fase 0 ****/
if (isset($_POST['fase'])===FALSE){ ?>
<div class="panels_box">
<div class="form_gioco">
<form action="/main.php?page=iscrizione1" method="post">
<div class="form_label" >
Vota l'utilità di questa pagina!
</div>
<div class="form_field" >
<select name="voto">
<option value="0.5" <?php if(gdrcd_filter('get',$_POST['voto'])=='0.5'){ echo 'SELECTED'; } ?> >0.5</option>
<option value="1" <?php if(gdrcd_filter('get',$_POST['voto'])=='1'){ echo 'SELECTED'; } ?> >1</option>
<option value="1.5" <?php if(gdrcd_filter('get',$_POST['voto'])=='1.5'){ echo 'SELECTED'; } ?> >1.5</option>
<option value="2" <?php if(gdrcd_filter('get',$_POST['voto'])=='2'){ echo 'SELECTED'; } ?> >2</option>
<option value="2.5" <?php if(gdrcd_filter('get',$_POST['voto'])=='2.5'){ echo 'SELECTED'; } ?> >2.5</option>
<option value="3" <?php if(gdrcd_filter('get',$_POST['voto'])=='3'){ echo 'SELECTED'; } ?> >3</option>
<option value="3.5" <?php if(gdrcd_filter('get',$_POST['voto'])=='3.5'){ echo 'SELECTED'; } ?> >3.5</option>
<option value="4" <?php if(gdrcd_filter('get',$_POST['voto'])=='4'){ echo 'SELECTED'; } ?> >4</option>
<option value="4.5" <?php if(gdrcd_filter('get',$_POST['voto'])=='4.5'){ echo 'SELECTED'; } ?> >4.5</option>
<option value="5" <?php if(gdrcd_filter('get',$_POST['voto'])=='5'){ echo 'SELECTED'; } ?> >5</option>
</select>
</div>
<!-- Invio -->
<div class="form_submit">
<input type="hidden" name="fase" value="1" />
<input type="hidden" name="voto" value="<?php echo gdrcd_filter('out',$_POST['voto']) ?>" />
<input type="submit" value="invia" />
</div>
</form>
</div>
</div>
<?php } ?>
<?php /**** Fase 1 ****/
if (gdrcd_filter('get',$_POST['fase'])==1){
gdrcd_query("INSERT INTO votazioni (nome, voto, pagina) VALUES ('".$_SESSION['login']."', '".gdrcd_filter('in',$_POST['voto'])."', '/main.php?page=iscrizione1')");
echo '<div class="warning">Voto Inoltrato</div>';
} else {
}//else
}
?>
</div>
<!-- Torna alla home -->
<div class="link_back">
<a href="main.php?page=iscrizione1"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
<!-- pagina --></div>
<?php } ?><?php } ?>
<!-- Chiudura finestra -->
</div>
</div>
Funziona tutto tranne il select... nel database nome e pagina appaiono perfettamente, ma il voto è perennemente 0 ç_ç qualcuno ha idee su cosa ho sbagliato?
04/09/2015 22:20:12
Risolto togliendo questa stringa:
<input type="hidden" name="voto" value="<?php echo gdrcd_filter('out',$_POST['voto']) ?>" />
Tutto perfettamente funzionante <3
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!
Storie di Agarthi ↗
State of Survival ↗
Fallen Gods ↗
RAID Shadow Legends ↗
Neverness to Everness ↗
The Coven ↗
AlterEgo ↗
Raja Dunia ↗
Cafuné ↗
Hero Wars ↗