Foros del Web » Programando para Internet » PHP »

Duda con formulario de "multiples" campos

Estas en el tema de Duda con formulario de "multiples" campos en el foro de PHP en Foros del Web. Buenas tardes. Hasta hace unos días las únicas webs que había hecho eran estáticas, o utilizando contenidos en php no creados por mí. Creo que ...
  #1 (permalink)  
Antiguo 17/04/2010, 12:05
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Duda con formulario de "multiples" campos

Buenas tardes.
Hasta hace unos días las únicas webs que había hecho eran estáticas, o utilizando contenidos en php no creados por mí.
Creo que ha llegado el momento de aprender a construir mis propias páginas dinámicas, por ello llevo unos días leyendo tutoriales y manuales de php.

Hasta el momento me he dedicado basicamente a php interactuando con mysql.
Como objeto de practicar, estoy haciendo un sitio ficticio de resultados deportivos.

Tengo creadas dos tablas en sql, una para equipos y otra para partidos.
equipos tiene dos registro : id (int), nombre (varchar)
partidos tiene 5 registros: id_jornada (int), id_local (int), id_visitante (int), goles_local (int), goles_visitante (int)
Relleno ambas tablas sin problema y puedo interactuar con la base de datos a través de formularios sencillos.

Ahora me propongo introducir los resultados que se producen cada jornada:
Esto lo he pensado como una tabla que tendría tantas filas como partidos una jornada, y 4 columnas en el siguiente orden:

Equipo local | caja formulario goles local | caja goles visitante | equipo visitante

Os muestro lo realizado hasta ahora:

Código PHP:
<?
    mysql_connect
($db_host,$db_user,$db_pass);
    
mysql_select_db($db_name);
    
$result1=mysql_query("select nombre from equipos, partidos where (id_jornada=$jornada and id=id_local)");
    
$result2=mysql_query("select nombre from equipos, partidos where (id_jornada=$jornada and id=id_visitante)");
        
// JORNADA es un parametro pasado a través de otro formulario
?>

<table align="center">
<?
    
// Impresion de los registros
    
while ($row1=mysql_fetch_array($result1) and $row2=mysql_fetch_array($result2)){
        echo 
'<td>'.$row1["nombre"].'</td>';
        echo 
'<td></td>';
        echo 
'<td></td>';
        echo 
'<td>'.$row2["nombre"].'</td></tr>';
    }
    
mysql_free_result($result1);
    
mysql_free_result($result2);
?>
Muestro perfectamente los nombres de los equipos pero no se como hacer para capturar los valores de todos los goles locales y visitantes y almacernarlos en la base de datos.

Agradecería cualquier tipo de ayuda y consejos sobre como plantear dicho formulario.
Así mismo, estoy empezando en esto y cualquier error de mal estilo o similares que me comenteis, me sería de gran ayuda.

Perdón por extenderme demasiado, pero prefiero así a que tengais que perder el tiempo solicitándome información adicional.

Última edición por hugarri; 17/04/2010 a las 12:06 Razón: clarificar mensaje
  #2 (permalink)  
Antiguo 17/04/2010, 12:18
 
Fecha de Ingreso: abril-2010
Mensajes: 115
Antigüedad: 14 años
Puntos: 2
Respuesta: Duda con formulario de "multiples" campos

podrias intentar

$result=mysql_query("select nombre,goles_local,goles_visitante from equipos, partidos where (id_jornada=$jornada and id=id_local)");
$row=mysql_fetch_array($result1)
echo $row['nombre']." ".$row['goles_visitante']." ".$row['goles_local'];

o alguna variacion de tu consulta y despues mostrarla para ke te des una idea de como estan los datos y ya despues montarla en tu tabla
  #3 (permalink)  
Antiguo 18/04/2010, 04:33
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Duda con formulario de "multiples" campos

Hola, gracias por tu respuesta pero creo que me he explicado mal, yo no quiero mostrar los resultados, quiero obtenerlos.

Lo que busco es cómo construir un formulario que tendría x casillas para goles del equipo local, x casillas para los goles del equipo visitante y que en una sola operación submit me almacenara todos los datos en la base.
  #4 (permalink)  
Antiguo 20/04/2010, 08:24
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Duda con formulario de "multiples" campos

Yo mismo di con la solución después de muchas horas de pruebas, ya hace lo que yo quiero. Lo publico por si a alguien le sirve, y por si alguien ve algún fallo de estilo o puede mejorar mi solución:

Código PHP:
<?    include_once("parametros.php");  ?>

<html>
<head>
<title>resultados</title>
</head>

<?     if (!isset($_POST['jornada']) and !isset($_POST['gol_local'])){    ?>
        <div align="center">
            <form method="post" action= "<? $_SERVER['PHP_SELF']?>">
                Jornada:<br>
                <input type="TEXT" name="jornada"><br>
                <input type="SUBMIT" value="Guardar">
            </form>
        </div>    
    
<?  }elseif(!isset($_POST['gol_local'])){ 
        
// Conexion con la base de datos
        
mysql_connect($db_host,$db_user,$db_pass);
        
// Seleccion de la base de datos
        
mysql_select_db($db_name);
        
// Consulta sql
        
$result1=mysql_query("select nombre from equipos, partidos where (id_jornada=$jornada and id=id_local)");
        
$result2=mysql_query("select nombre from equipos, partidos where (id_jornada=$jornada and id=id_visitante)");
?>
        <form method="post" action= "<? $_SERVER['PHP_SELF']?>">
            <table align="center">
            <?
            
// Impresion de los registros
            
while ($row1=mysql_fetch_array($result1) and $row2=mysql_fetch_array($result2)){
                echo 
'<td>'.$row1["nombre"].'</td>';
                echo 
'<td> <input type="TEXT" size="2" name="gol_local[]"></td>';
                echo 
'<td> <input type="TEXT" size="2" name="gol_visitante[]"></td>';
                echo 
'<td>'.$row2["nombre"].'</td></tr>';
            }
            echo 
'</table>';?>
            <input type="hidden" name="jornada" value="<?php echo $jornada;?>">
        <? echo '<div align="center"><input type="submit" value="Guardar"></div>';
        echo 
'</form>';
        
mysql_free_result($result1);
        
mysql_free_result($result2);

    }else{
        
// Conexion con la base de datos
        
mysql_connect($db_host,$db_user,$db_pass);
        
// Seleccion de la base de datos
        
mysql_select_db($db_name);
        
$gol_local $_POST['gol_local'];
        
$gol_visitante $_POST['gol_visitante'];
        
$jornada $_POST['jornada'];
        
$n count($gol_local);
        
$i 0;
        
$aux=mysql_query("select id_local from partidos where id_jornada=$jornada");
        while (
$i<$n){
            
$x=mysql_fetch_array($aux);
            
$y $x["id_local"];
            
mysql_query("update partidos set goles_local=$gol_local[$i] where (id_jornada=$jornada and id_local=$y)");
            
mysql_query("update partidos set goles_visitante=$gol_visitante[$i] where (id_jornada=$jornada and id_local=$y)");
            
$i++;
        }
    }
?>

<body>
</body>
</html>

Etiquetas: campos, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:34.