interpretare uno script php non fatto da me...

  • Creatore Discussione Creatore Discussione theseo
  • Data di inizio Data di inizio

theseo

Utente Attivo
22 Feb 2017
95
5
8
62
ciao a tutti, devo modificare il seguente codice non fatto da me e non riesco... adesso ve lo incollo qua sotto e poi al fondo scrivo la modifica che mi serve-->

PHP:
$quante = $giuste = $sbagliate = 0;
$html_sbagliate = "";
foreach ($_SESSION["sess_domande"] as $key => $arr)
{
    $query = "
    SELECT id, domanda, risposta_esatta
    FROM questionario_domande
    WHERE 1
        AND id = '".$arr["id_domanda"]."'
    ";
    $result = doQuery($query);           
    list($id_domanda, $domanda, $risposta_esatta) = mysql_fetch_array($result);
    if (stripslashes($risposta_esatta) == $arr["risposta"])
    {
        $giuste++;
    }
    else
    {
        $sbagliate++;
        $html_sbagliate .= "<li> <span>$domanda</span> <span>tua risposta:</span><b class=\"pi_results_red\">".$arr["risposta"]."</b><span>risposta esatta:</span> <b class=\"pi_results_green\">$risposta_esatta </b></li>";

    }
    $quante++;
}

allora... questo codice memorizza nella variabile html_sbagliate le domande sbagliate di un test e le memorizza insieme alla risposta errata e a quella giusta.
Bene... io ho bisogno che mi memorizzi SOLO i numeri (=id) delle risposte sbagliate e nient'altro. Ho provato a smagrirlo in varie parti ma mi dà sempre errori o risultati strani... (sono un cavernicolo php over 55...), mi potete aiutare per favore?
 
PHP:
$contatore=['corrette'=>0,'errate'=>0,'old_mem'=>[]];
foreach ($_SESSION["sess_domande"] as $key => $arr)
{
    $query = "
    SELECT id, domanda, risposta_esatta
    FROM questionario_domande
    WHERE 1
        AND id = '".$arr["id_domanda"]."'
    ";
    $result = doQuery($query);           
    list($id_domanda, $domanda, $risposta_esatta) = mysql_fetch_array($result);
    if (stripslashes($risposta_esatta) == $arr["risposta"])
    {
/**VER 1*/
       $contatore['corrette']++;
       $contatore['old_mem']['corretta'][]=stripslashes($risposta_esatta);
       $contatore['old_mem']['item_correct']=$id_domanda;
/*END*/
/**VER 2*/
 $contatore['corrette']++;
$contatore['old_mem']=['dmd'=>$id_domanda,'type'=>'corretta'];
/*END*/
    }
    else
    {
/**VER 1*/
       $contatore['errate']++;
       $contatore['old_mem']['errata'][]=$arr["risposta"];
       $contatore['old_mem']['item_errata']=$id_domanda;
/*END/    
/**VER 2*/
 $contatore['errate']++;
$contatore['old_mem']=['dmd'=>$id_domanda,'type'=>'errata'];
/*END*/
}
   
}
 
(sono un cavernicolo php over 55...),
se vuoi mantenere il codice originale per una facile comprensione e successivi ripensamenti,
puoi spezzare la riga "$html_sbagliate .= <li>…" nelle sue componenti, racchiudendo le parti inutili tra i tag di commento "<!-- -->" che rendono il contenuto non operativo, in altre parole il codice sottostante lista l'id seguito dalla domanda e nulla più,
se non ti serve la domanda, la puoi spostare nel commento
PHP:
$html_sbagliate .= "
<li>
  <span>$id_domanda</span>
  <span>$domanda</span>

<!--
  <span>tua risposta:</span> <b class=\"pi_results_red\">".$arr["risposta"]."</b>
  <span>risposta esatta:</span> <b class=\"pi_results_green\">$risposta_esatta </b>
-->

</li>
";
ps, se proprio vuoi, il codice racchiuso nel commento puoi anche eliminarlo
 

Discussioni simili