Tengo un programa que me genera una serie de resultados en plan array, los guardo en una base de datos mysql separados por comas, se trata de un programa generador de actividades , por cada actividad me guarda 4 numeros separados por comas, si hago 5 actividades me guarda 20 numeros separados por comas , por ejemplo:
a,b,c,d,a,b,c,d,a,b,c,d,.........
Donde
a ---> número de página.
b ---> tipo de página. Sopa de letras, respuesta múltiple, etc
c ---> Evaluación de la página:0 NO INTENTADO,1 BIEN,2 MAL,3 NO ES UNA
ACTIVIDAD.
d ---> Número de intentos.
y asi se repiten y repiten las series tantas series como actividades haya hecho.
El script que guarda los datos es el siguiente:
Código PHP :
<?php //Este es un script muy simple para ver las posibilidades de LIM y php if (empty($_POST)){ //Si no recibe datos. } else { include('config.php'); $resul = $_POST['iresul']; $titulo = $_POST['ititulo']; $intime = $_POST['itime']; $id = $_POST['iid']; $user= $_POST['inom']; $nota = 0; //$user contiene la identificación del usuario, se debe obtener por sesión, cookie , etc, para este ejemplo utilizamos un valor fijo //$user='$inom'; //$id es la identificación del libro-LIM, puede pasarse desde el propio libro mediante &id=...., o por código if ($id!='') { $conect=mysql_connect($dservidor, $duser, $dpass)or die (""); echo "conexion<br/>"; if ($conect) { mysql_select_db ($base, $conect); $sql = "SELECT * FROM $tabla WHERE id_libro=".$id." AND usuario='".$user."';"; $result = mysql_query($sql) or die (mysql_error()); $nume = mysql_num_rows($result); $arrayDatos=explode(",",$resul); $num=count($arrayDatos)/4; $suma=0; for ($f=0;$f<$num;$f++) { $nump++; switch ($arrayDatos[$m+2]) { case "1": $suma++; break; default: break; } if ($arrayDatos[$m+2]=="3") $nump--; $m=$m+4; } $nota=number_format(($suma/$nump)*10,1); if ($nume>0) { $sql ="UPDATE $tabla SET id_libro='".$id."',libro='".$titulo."', nota = '".$nota."', datos='".$resul."',fecha=NOW() WHERE id_libro=".$id." AND usuario='".$user."';"; } else { $sql ="INSERT INTO $tabla ( `id_libro`, `usuario`, `libro`, `nota`, `datos`, `fecha`) VALUES ('".$id."','".$user."','".$titulo."','".$nota."', '".$resul."', NOW());" ; } $result = mysql_query($sql)or die(mysql_error()); echo "$resul, $titulo, $intime, $id, $user, $nota"; } } } ?>
Tambien tengo un script que me permite ver los resultados pero no me los guarda en la BBDD, solo para visualizarlos :
Código PHP :
</head> <body> <div id="isla"></div> <div id="contenedor_tabla_resultados"> <?php include('config.php'); $marcab='<img src="marcab.png"/>'; $marcam='<img src="marcam.png"/>'; $marcac='<img src="marcac.png"/>'; $suma=0; $nump=0; $num=0; ////Valores para este ejemplo, en un entorno real deben obtenerse de la sesión, post, get , etc $id=10; $user=$row_notas['usuario']; print '<p class="final">Alumno: '.$row_notas['usuario'].'</p>'; ?> <table width="600" border="1" cellpadding="2" cellspacing="0"> <tr class="cabecera"> <td width="150">Página</td> <td width="150">Correcta</td> <td width="150">Intentos</td> <td width="150">No es un actividad </td> </tr> <p> </p> <p> <?php if ($id!=''){ $conect=mysql_connect($dservidor, $duser, $dpass)or die (""); if ($conect){ mysql_select_db ($base, $conect); $sql = "SELECT * FROM $tabla WHERE id_libro=".$id." AND usuario='".$user."';"; $result = mysql_query($sql) or die (mysql_error()); $nume = mysql_num_rows($result); if ($nume>0) { while($fila = mysql_fetch_assoc($result)) { $titulo=$fila['titulo']; $fecha=$fila['fecha']; $resultado=explode(",",$fila[datos]); $num=count($resultado)/4; for ($f=0;$f<$num;$f++) { $nump++; print ('<tr class="datos">'); print ("<td>".($f+1)."</td>"); switch ($resultado[$m+2]) { case "0": print ("<td>".$marcac."</td>"); break; case "1": print ("<td>".$marcab."</td>"); $suma++; break; case "2": print ("<td>".$marcam."</td>"); break; default: print ("<td></td>"); break; } if ($resultado[$m+2]=="3") { print ("<td>----</td>"); print ("<td>".$marcac."</td>"); $nump--; } else { print ("<td>".$resultado[$m+3]."</td>"); print ("<td></td>"); } print ("</tr>"); $m=$m+4; } } if ($suma>0){ $nota=number_format(($suma/$nump)*10,1); }else{ $nota=0; } $texto='Fecha:'.$fecha.'<br>'; $texto=$texto."Correctas: ".$suma." de ".$nump." actividades"." ---- "; $texto=$texto."Nota: ".$nota.""; print "</table>"; print ('<p class="final">'.$texto.'</p>'); } } } ?> </p> <div id="contenedor_pirata_nota"> <div id="texto_nota_pirata"><?php echo $nota ?> </div> </div> </body> </html>
Ahora bien, me gustaria extraer los datos del array, digamos decodificarlo y hacer que tenga sentido, como hacerlo?????? alguna orientación por favor?
un saludo