Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/10/2015, 13:03
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Duda en Select Multiple: Consulta a 2 tablas PHP MYSQL

<saludo>

Cita:
Iniciado por DArChAvi Ver Mensaje
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