Somma Risposte

Vincanto

Nuovo Utente
11 Giu 2021
7
0
1
Spero di scrivere rispettando il regolamento.
Salve a tutti, sono un neofita di MySQL e ho il seguente problema.

propongo un quiz con domande.php:

PHP:
<?php
$risposta="SELECT * FROM risposte where DOM_id = ".$_id_dom;
$risp_totale= $db->query($risposta);
while($rigo_risposta = mysqli_fetch_array($risp_totale, MYSQLI_ASSOC))
{
$_id_risp = $rigo_risposta ["RISP_id"];
$_rispo = $rigo_risposta ["RISP_risposta"];
$_valore = $rigo_risposta ["RISP_valore"];
?>
risposta: <?php echo $_rispo;?><input type="radio" name="ris_<?php echo $_id_dom; ?>[]" value="<?php echo $_id_risp; ?>"><br>
<?php
}
?>
<input type="hidden" name="domanda[]" value="<?php echo $_id_dom; ?>">
<br><br>
<?php
}
?>
<input type="submit" value="V E R I F I C A !"></center>
</form>

con risultato.php visualizzo le risposte:

PHP:
<?php
include('_config.php');

$_ord_dom = 0;
//==================================================================================
$query="SELECT * FROM domande";
$result_totale= $db->query($query);
while($rigo_totale = mysqli_fetch_array($result_totale, MYSQLI_ASSOC))
{
$_id_dom = $rigo_totale ["DOM_id"];
$_doman = $rigo_totale ["DOM_domanda"];

$_ord_dom++;
?>
Domanda: <?php echo $_ord_dom;?>) <?php echo $_doman;?><br>
<?php
//==================================================================================
$_risposta="SELECT * FROM risposte where DOM_id = ".$_id_dom;
$_R_totale = $db->query($_risposta);
while($_R_rigo = mysqli_fetch_array($_R_totale, MYSQLI_ASSOC))
{
$_id_R = $_R_rigo ["RISP_id"];
$_R_rispo = $_R_rigo ["RISP_risposta"];
$_R_valore = $_R_rigo ["RISP_valore"];
//==================================================================================
$risposta = isset($_POST["ris_".$_id_dom]) ? $_POST["ris_".$_id_dom] : array();
//==================================================================================
if (!count($risposta))
{
echo "- ".$_R_rispo.": NO<br>";
}
else
{
//==================================================================================
foreach($risposta as $risposte)
{
//==================================================================================
if ($_id_R == $risposte)
{
echo "- ".$_R_rispo.": ".$_R_valore."<br>";
}
else
{
echo "- ".$_R_rispo." <br>";
}
//==================================================================================
}
//==================================================================================
}
//==================================================================================
}
//==================================================================================
}
//==================================================================================
echo "<br><br><br><br>";
?>

Riesco a visualizzare le risposte

Vorrei, non riesco, sommare le risposte esatte, errate e non date, purtroppo data la mia scarsa esperienza al riguardo, da poco mi sto avvicinando al mondo PHP e MYSQL, non riesco.
Vi sarei grato se mi date una mano
Buona vita
 
È buona norma e usanza di questo forum postare la soluzione quando si risolve a vantaggio di altri utenti con lo stesso problema considerato che hai aperto tu la discussione
 
Non ho postato la soluzione perchè ero fuori casa e non avevo il computer, stamattina sono rientrato e provvedo:

PHP:
$_D_query="SELECT * FROM domande";
$_D_totale= $db->query($_D_query);
while($_D_rigo = mysqli_fetch_array($_D_totale, MYSQLI_ASSOC))
{
$_D_id_dom = $_D_rigo ["DOM_id"];
//==================================================================================
    $_conta_risposta = isset($_POST["ris_".$_D_id_dom]) ? $_POST["ris_".$_D_id_dom] : array();
//==================================================================================
    foreach($_conta_risposta as $_conta_risposte)
    {
//==================================================================================
//$_conta_R="SELECT sum(RISP_valore) as totale FROM risposte where RISP_id IN ($_conta_risposte)";
$_conta_R="SELECT RISP_valore FROM risposte where RISP_id IN ($_conta_risposte)";
//echo $_conta_R."<br>";
$_R_conta_totale = $db->query($_conta_R);
while($_R_conta_rigo = mysqli_fetch_array($_R_conta_totale, MYSQLI_ASSOC))
{
$valore[]=$_R_conta_rigo["RISP_valore"];
}
//==================================================================================
    }
//==================================================================================
}
$_somma = $valore;

echo "Totale Somma:".array_sum($_somma)."</p>";

Le risposte hanno valore:
RISP_valore 0.5
RISP_valore 0.5
RISP_valore 0.5
RISP_valore 0


e array_sum($_somma) mi dà Totale Somma:1.5

Buona giornata
 

Discussioni simili