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.