Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/10/2015, 13:31
DArChAvi
 
Fecha de Ingreso: octubre-2015
Ubicación: México DF
Mensajes: 5
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Duda en Select Multiple: Consulta a 2 tablas PHP MYSQL

Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludo>



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>
Tal vez no me explique muy bien, por ejemplo:
Tengo 3 tablas: oportunidades, carrera y la transitiva que se forma de éstas (oportunidadesXcarrera).

Voy a actualizar una oportunidad que tiene seleccionadas 5 carreras, y quiero que al final solo sean 3 las que queden seleccionadas, es decir, que se eliminen del registro las 2 carreras a las que le quité la selección, para que al presionar submit sólo aparezcan 3 seleccionadas en lugar de 5, como era anteriormente.