21/10/2015, 13:03
|
| Colaborador | | Fecha de Ingreso: septiembre-2009 Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 4 meses Puntos: 214 | |
Respuesta: Duda en Select Multiple: Consulta a 2 tablas PHP MYSQL <saludo> Cita:
Iniciado por DArChAvi Perfecto, ya quedó!
Muchas gracias! De nada
Ahora bien, la otra duda que tenía era que cuando le doy en guardar se actualizan todos los campos excepto el de carrera, mi codigo de update: Código PHP: $oportunidad = $_POST['oportunidad']; $descripcion = $_POST['descripcion']; $carrera = $_POST['carrera']; $ubicacion = $_POST['ubicacion']; $id_op = $_POST['id_op']; $sql = "UPDATE oportunidades SET oportunidad = '$oportunidad', descripcion = '$descripcion', carrera = '$carrera', ubicacion = '$ubicacion' WHERE id_op = $id_op ";
Supongo que ese update también se debe hacer con oportunidadesXcarrera, pero no tengo bien claro cómo implementarlo. A ver, esta ya es una tercera tabla, en donde veo solo un campo para la carrera, es decir, que cuando se edita a la final solo queda una carrera?
Sí no es así, y la persona puede tener oportunidades en varias carreras,
pues lo mejor sería, como bien supones, seguir trabajando con
oportunidadesXcarrera.
Ahora, como hacerlo?
Pues hay varios modos, pero antes de eso, una pregunta.
Hay trascendencia en el tiempo? Es decir, por ej:
El lunes yo elegí 3 carreras, luego el martes editè y solo deje 2.
Esto muere ahì? O puedo seguir 'jugando' con las oportunidades?
Y se hace necesaria una trazabilidad para saber cuando agregue n carreras,
cuando las eliminè, cuando volvì a agregar la misma, etc....
Sí la respuesta es afirmativa, hay màs vueltas para hacer.
Sí la respuesta es negativa, entonces lo que yo harìa es eliminar los
registros que ya no necesite de la tabla de oportunidadesXcarrera, y así, al editar, solo vería seleccionadas las que
dejé finalmente, y sí vuelvo a agregar, o quitar alguna, esta info
siempre se verà reflejada en el listado ya que la consulta hacia la bd
ya se encarga de esto.
Siguiendo con el ej negativo, y teniendo en cuenta que es un select multiple,
y que me llegan solo los values seleccionados al momento del submit,
lo que yo harìa es tomar esos values, y hacerlos un string.
Ej: Código PHP: $variableselect = array(1,2,3); for($i = 0; $i < sizeof($array); $i++) $ids .= $variableselect [$i].','; echo 'ids es '.substr($s,0,strlen($ids)-1);
Hasta aquí, tengo los ids que el usuario seleccionó.
Ahora solo queda hacer un query para eliminar los registros de la tabla oportunidadesXcarrera que sean de la oportunidad que se està editando
y cuyos ids de carrera sean diferentes a los que estàn en la variable $ids.
Para eso, teniendo en $ids los válidos, se puede hacer uso de la cláusula NOT IN. </saludo>
__________________ "Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com |