Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/06/2014, 16:07
jona86
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Recoger variable de un Select

Buenas noches,

Os pongo en antecedentes, estoy creando un sistema para almacenar clasificaciones de carreras en la base de datos, comprobando los corredores si existen o no, el problema viene con los corredores con nombres iguales (pero de distintos equipos, por ejemplo).

Partiendo de un textarea donde se introduce la clasificación, se divide línea a línea y toma los nombres y apellidos de los corredores, además de el tiempo y la posición.

Una vez ahí comprueba si existe el corredor en la base de datos y si es así almacena su id en un array $corredores[$posicion] igual que el tiempo y la posición. Y luego lo escribe pasando al siguiente, si hay error en la comprobación pide introducir al corredor en la db.

Cuando encuentra varios corredores que coinciden escribe un < select > con todos los nombres iguales para que se seleccione el que sea correcto, ¿como hago para que ese se almacene en su posición del array?

El tema es quiero que primero compruebe todos, almacenandolos en los arrays y una vez no haya ningun error se pueda dar al botón pasando los datos a la db.

Os adjunto el código hasta donde he llegado (ya lo sé, uso mysql_query cuando debería pasar a mysqli, pero aún no me he puesto con ello )

Código PHP:
if (!isset($_GET['accion'])){
    
    echo 
"<center><font class=\"title\"><b>Anadir Resultados</b> </font></center><br>
       <form method=\"post\" action=\"admin.php?page=resultados-amateur&accion=testresult\">
       Carrera: <input type=\"text\" name=\"carrera\" ><br>
       Resultados: <br>
       <textarea cols=100 rows=20 name=\"clasificacion\"></textarea> <br>
       * El texto debera tener la siguiente estructura: Posicion, Apellidos coma Nombre gui&oacute;n Tiempo<br>
       Ejemplo: <br>
       1 238 IRISARRI,JON SUB23 EDP 02:40:37<br>
       2 280 HERNANDEZ,MIKEL ELITE DEBABARRENA 02:40:37<br>
       3 182 DIAZ,IMANOL SUB23 IBAIGANE OPEL ARRATIA 02:40:37<br>
       <input name=\"Enviar\" type=\"submit\" value=\"Agregar\"></form>"
;
    
    }
    
    elseif(
$_GET['accion']=="testresult"){
    
    
$contador=0;
    
$errores=0;
    
    
$carrera $_POST['carrera'];
    
$clasi $_POST['clasificacion'];
    
$clasi2 utf8_decode($clasi);
    
$linea strtok ($clasi,"\n");

    
$sqlcarr "SELECT nombre FROM nuke_calendario WHERE id = $carrera";
    
$resultcarr mysql_query ($sqlcarr);
    list(
$nomcarr) = mysql_fetch_row ($resultcarr);

    echo
"<b>Carrera: $nomcarr </b><br><br>";
    echo
"<table border='0'>";
    
        while (
$linea != false) {
        
        list( 
$pos$datos ) = explode" "$linea2);
        list( 
$dorsal$datos2 ) = explode" " $datos 2);
        list( 
$apellidos$datos3 ) = explode", " $datos2);
        list( 
$nombre$datos4 ) = explode" " $datos32);
        
$datos5 array_reverse(explode(' ',$datos4));

        
$time $datos5[0];
        
$formato 'h';
        
$formato2 "\'";
        
$formato3 't';

        
$mt strpos($datos5[0],$formato3);

        if (
$mt != false) { $time '00:00:00'; }

        
$lug strpos($datos5[0],$formato); // para formato 2h30'21''

        
if ($lug != false) {
        
        
$time str_replace ($formato':'$time);
        
$time str_replace ("\'"':'$time);
        
$time trim($time);
        
$time substr($time,0,-2);
        
        }

        
$lug2 strpos($time,$formato2);
        
        if (
$lug2 != false) {
        
        
$time str_replace ("\'"':'$time);
        
$time trim($time);
        
$time substr($time,0,-2);
        
        }

        
$longitud_time strlen ($time);

        if (
$longitud_time == 1$time "00:00:0" $time;
        if (
$longitud_time == 2$time "00:00" $time;
        if (
$longitud_time == 4$time "00:0" $time;
        if (
$longitud_time == 5$time "00:" $time;
        if (
$longitud_time == 7$time "0" $time;

        
$sqlciclista "SELECT id FROM amateur_corredores WHERE nombre LIKE '".$nombre."%' AND apellidos LIKE '".$apellidos."%'";
        
$resultciclista mysql_query($sqlciclista);

        if(list(
$cid) = mysql_fetch_row($resultciclista)) $nex=0;
        else 
$nex=1;

        if (
$nex == 0) {
        
$contador++;

        
$posiciones[$contador] = $pos;
        
$ciclistas[$contador] = $cid;
        
$tiempos[$contador] = $time;

        
//echo "$pos - $nombre - $apellidos - $dorsal - $time ($longitud_time)<br>";

        
if (mysql_num_rows($resultciclista) >= 2) {

        echo 
"<tr bgcolor='yellow'><td width='5%' align='center'><font size='2'>$pos</font></td><td width='10%' align='center'><font size='2'>$dorsal</font></td><td width='65%'><select>";

        
$sqlciclistasnom "SELECT id,nombre,apellidos FROM amateur_corredores WHERE nombre LIKE '".$nombre."%' AND apellidos LIKE '".$apellidos."%'";
        
$resultciclistasnom mysql_query($sqlciclistasnom);
        while ( list(
$id,$nom,$ape) = mysql_fetch_row($resultciclistasnom) ) {
            echo
"<option value='$id'>$nom $ape</option>";
        }

        echo 
"</select></td><td width='20%'><font size='2'>$time</font></td></tr>";

        }

        else echo 
"<tr><td width='5%' align='center'><font size='2'>$pos</font></td><td width='10%' align='center'><font size='2'>$dorsal</font></td><td width='65%'><font size='2'>$nombre $apellidos</font></td><td width='20%'><font size='2'>$time</font></td></tr>";

        }
        else {
        
$errores++;
        echo 
"<tr bgcolor='red'><td width='5%' align='center'><font size='2'>$pos</font></td><td width='10%' align='center'><font size='2'>$dorsal</font></td><td width='65%'><font size='2'>$nombre $apellidos</font></td><td width='20%'><font size='2'>$time</font></td></tr>";
        
//echo "MAL $pos - $nombre - $apellidos - $dorsal - $time ($longitud_time)<br>";
        
}
        
        if (
$pos == 1$tiempoganador $time;
        
//echo"$nombre<br>";
        
        
        
$linea strtok("\n");
        }
    echo
"</table><br><br>Bien: $contador <br>Errores: $errores"
    
    }