1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Extraer datos separados por comas de campo text en mysql

Tema en 'Programación y Diseño Web' iniciado por cartagines, 13 Nov 2011.

  1. cartagines

    cartagines Nuevo usuario

    Hola

    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:

    CODE, HTML o PHP Insertado:
    <?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 :


    CODE, HTML o PHP Insertado:
    </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&aacute;gina</td>
    <td width="150">Correcta</td>
    <td width="150">Intentos</td>
    <td width="150">No es un actividad </td>
    </tr>
    <p>&nbsp;</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?


    este es un ejemplo de datos separados por comas que se guardan en la variable $iresul
    1,2,3,0,2,4,0,1,3,38,0,0,4,38,0,0,5,38,0,0,6,38,0,0,7,38,0,0,8,38,0,0,9,38,1,2,10,38,0,0,11,38,0,0


    un saludo
     
  2.  
  3. cartagines

    cartagines Nuevo usuario

    Hasta ahora lo unicoque he conseguido es sacar los 4 primeros datos con este script:

    CODE, HTML o PHP Insertado:
    <?php  $notas = $row_Recordset1['datos'] ;
    $array = explode (",", $notas);
    echo  "nº de pagina ".$array [0];
    echo " tipo actividad ".$array [1];
    echo " evaluacion ".$array [2];
    echo " intentos ".$array [3];
    ?>
    
    
    Creo que he de meter un bucle para que me saque todos los datos, ahi esta mi limite en cuanto a programacion se refiere ... :(

     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·