Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/03/2016, 15:04
Aldegunde
 
Fecha de Ingreso: marzo-2016
Mensajes: 5
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Lista de selección en formulario

Hola a todos,

soy absolutamente nuevo en el foro y recién llegado a PHP, estoy realizando un proyecto para ir aprendiendo poco a poco y me he encontrado con un problema que no consigo solucionar.
Tengo un formulario en el que algunos campos están unidos a otras tablas ya que en la tabla principal tengo un valor numérico y en la segunda ligado con el ID la descripción.
Cuando quiero actualizar la tabla principal desde el formulario si pongo el texto de descripción no me lo guarda en db tengo que poner el numero para que me lo guarde. Este es el código:

Código:

$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM tasks 
LEFT JOIN projects  ON tasks.t_project   = projects.p_id
LEFT JOIN keystones ON tasks.t_key_stone = keystones.k_id
LEFT JOIN users     ON tasks.t_owner     = users.u_id
Place clausul where afte these lines if finally solved
WHERE t_id = ?";


$q = $pdo->prepare($sql);
$q->execute(array($t_id));
$data = $q->fetch(PDO::FETCH_ASSOC);
$t_country = $data['t_country']; //Aqui pongo nombre de la tabla con descripciones y tengo el formulario sin problemas (Descripción)
$t_project = $data['t_project']; // igual que country (nombre de tabla auxiliar)
$t_key_stone = $data['t_key_stone']; //igual que country (nombre de tabla auxiliar)
$t_name = $data['t_name'];
$t_description = $data['t_description'];
$t_owner = $data['t_owner'];
$t_coworker = $data['t_coworker'];
$t_start = $data['t_start'];
$t_ends = $data['t_ends'];
$t_status = $data['t_status'];
$t_progress = $data['t_progress'];
Database::disconnect();


//Hasta aquí todo va bien, tengo el formulario relleno y no tengo números de tabla madre.

// creo que el problema empieza aquí al actualizar porque los campos del formulario están con descripción y al intentar guardar algo no cuadra, por ejemplo la tabla espera recibir un 1 cara el campo t_country y se encuentra con España y no salva nada en ese campo.

 
$sql = "UPDATE tasks  set t_country = ?, t_project = ?, t_key_stone = ?, t_name = ?, t_description = ?, t_owner = ?, t_coworker = ?, t_start = ?, t_ends = ?, t_status = ?, t_progress = ? WHERE t_id = ?";   
$q = $pdo->prepare($sql);
$q->execute(array($t_country,$t_project,$t_key_stone,$t_name,$t_description,$t_owner,$t_coworker,$t_start,$t_ends,$t_status,$t_progress,$t_id));
Database::disconnect();
header("location: projects-read.php?p_id=".$_POST['t_project']);

Me podría alguien echar una mano para encauzar esto??? :) gracias de antemano.