Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/10/2015, 10:50
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>
Pues teniendo en cuenta lo que se quiere lograr, hay algunas cosas a cambiar.
1. La consulta que se hace actualmente, al hacer JOIN entre
las tablas de carreras y oportunidadesXcarrera, solo traerá
las carreras que se han seleccionado al momento de ingresar el registro.
Solución? Dividir las consultas.
Es decir, la primera consulta a realizar sería solo a la tabla carreras,
y que el select dibuje todas estas.
A su vez, en ese ciclo, hacer la consulta del JOIN, y como ya se tiene
el idCarrera producto de la consulta inicial, se puede sumar a la segunda
consulta, es decir, algo así:
Código PHP:
$consulta2 "SELECT  * FROM oportunidadesXcarrera  
        WHERE  oportunidades_id_op ="
.$result["id_op"]. " AND carrera_idCarrera = ".$fila["idCarrera"]; 
2. En este punto, ya sabremos sí la carrera que se está dibujando actualmente
tiene registro en la tabla oportunidadesXcarrera con el id_op y el carrera_idCarrera.
3. Producto del punto 2, podemos hacer la comparación entre $fila y $fila2,
y preguntar sí son iguales, y si lo son, entonces seleccione la opción
que esta dibujando en ese momento, algo así:
Código PHP:
<option value="<?php echo $fila['idCarrera'];?><?php if( $fila2['carrera_idCarrera'] == $fila['idCarrera'] ) echo 'selected'?> >
                            <?php echo $fila['nombreCarrera']; ?>
</option>
</saludo>

Muchas gracias por tu respuesta, seguro me servirá de mucho!

Según te entiendo sería algo parecido a esto, no?
Porque también tengo que recorrer la segunda consulta, pero al hacerlo sigue saliendo lo mismo.
Creo que también debo mejorar mucho mi lógica de programación.
Saludos.

Código PHP:
    $consulta = "SELECT * FROM carreras";
    $resultado = mysql_query($consulta, $conn);
    ?>

<select required class="form-control" style="width:400px;" multiple name="carrera[]">

<?php
while($fila=mysql_fetch_array($resultado))             
{

          
$consulta2 "SELECT  * FROM oportunidadesXcarrera 
          WHERE oportunidades_id_op ="
.$result["id_op"]. " AND carrera_idCarrera 
          = "
.$fila["idCarrera"];  
                                                                
          
$resultado2 mysql_query($consulta2$conn);
                                                              
          while(
$fila2 mysql_fetch_array($resultado2))
          {             
           
?>                                                        
                                                             
           <option value="<?php echo $fila['idCarrera'];?><?php if( 
           
$fila2['carrera_idCarrera'] == $fila['idCarrera'] ) echo 'selected'?>>
            <?php echo $fila['nombreCarrera']; ?>
                                                             
           </option>

           <?php
            
}
}

?>
</select>