Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/11/2009, 08:32
Avatar de dggluz
dggluz
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Guardar datos de un formulario en tabla relacionada

Cita:
Iniciado por kimmy Ver Mensaje
Gracias dggluz. Una pregunta más, a cada uno de los input que traen el n_caballo les pongo el mismo nombre?

Lo hice asi pero no me guarda nada:

Código PHP:
 for($i=1$i<=13$i++)
    {
        if(!empty(
$_POST['n_caballo'.$i]))
        {
            
mysql_query("INSERT INTO caballos VALUES '$n_caballo'");
        }
    } 
Que estoy haciendo mal?
Mira, en realidad lo que está mal ahí es la sintaxis de la consulta SQL. Un query SQL correcto para la inserción de datos sería:
Código SQL:
Ver original
  1. INSERT INTO nombreDeLaTabla (nombreDeLaColumna1, nombreDeLaColumna2, ..., nombreDeLaColumnaN) VALUES (valorParaLaColumna1, valorParaLaColumna2, ..., valorParaLaColumnaN);
No todas las columnas son obligatorias, y por cada INSERT, tendrás un registro nuevo. Es decir que tienes que insertar todas las columnas que quieres de una sola vez, no de a una. Por otra parte, usas la variable $n_caballo ¿de dónde sale esa variable? No te puse el ejemplo completo antes porque creí que no haría falta, pero así lo haría yo:
Código PHP:
for($i=1$i<=13$i++)
{
    if(!empty(
$_POST['n_caballo'.$i])
    {
        if(isset(
$_POST['retirado'.$i]))
        {
            
$retirado='Sí';
        }
        else
        {
            
$retirado='No';
        }
        
$sql="INSERT INTO ".$tuTabla." (nro, nombre_caballo, pp, kg, jinete, entrenador, propietario, haras, ret) VALUES (".$_POST['n_caballo'.$i].", '".$_POST['nombre_caballo'.$i]."', ".$_POST['puesto'.$i].", ".$_POST['kg'.$i].", '".$_POST['jinete'.$i]."', '".$_POST['entrenador']."', '".$_POST['propietario'.$i]."', '".$_POST['haras'.$i]"', '".$retirado."');";
                
mysql_query($sql);
    }

El !empty está para comprobar que el usuario completó ese campo, sin embargo valido uno sólo porque validar todos es demasiado tedioso y supongo que si completó el primer campo de la "fila" de caballos, completo el resto de los campos para ese caballo ¿se entiende? Sin embargo según la aplicación, en ocasiones conviene validar TODOS los campos. Eso depende de cada aplicación y del usuario al que esté dirigido y el nivel de seguridad deseado.
Como puedes ver, los datos que son cadenas tengo que mandarlos entrecomillados, los que son números no hace falta. Por otro lado, los nombres de las columnas no sé si coinciden pues tu no los haz puesto. Así que tú sabrás qué cosas exactamente debes cambiar para que el script funcione. ¡Suerte!