Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/12/2015, 15:12
Avatar de loncho_rojas
loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Crear una consulta SQL a partir de un array php

Buenas... tengo una consulta SQL, pero necesito traducirla a factores de PHP como un array... es decir... tengo una SESSION creada de la cual pueden haber 1, 2, 3 y hasta 5 elementos --> $_SESSION['materias'][] ... los valores de esta sesion necesito introducir dentro de una consulta MYSQL como:

Código MySQL:
Ver original
  1. SELECT id_material,material,
  2. FROM plan_diario
  3. WHERE (id_materia = 4 or id_materia = 5 or id_materia = 8) and curso =2 and id_ciclo = 1

En donde el <<WHERE (id_materia = 4 OR id_materia = 5 OR id_materia = 8) >> es donde deberían venir a parar los resultados del array de sesion...

Con un bucle FOR podría lograrlo, pero si se dan cuenta debo incluirle las condicionales OR si es que hay más de 1 resultado... y eso es lo que no estoy logrando resolver y necesito una mano...

Esta es una posibilidad que trate de realizar, pero no se como poner los OR... ya que, si la session solo trae 1 elemento, no hay problema, pero si trae 2 o más, ya necesito una condicional OR dentro del SQL.. en el ejemplo puse el OR dentro del bucle FOR, pero no funcionaría bien por lo siguiente:

Código PHP:
<?php
$sql 
"SELECT id_material,material, 
                FROM plan_diario
                WHERE ("
;
                
    if(
count($_SESSION['materias']) > 1){

        for(
$i=0;$i<count($_SESSION['materias']);$i++){
//esta es la linea del problema al colocar el OR
            
$sql +="id_materia = ".$_SESSION['materias'][$i]." OR";
        }

    }else{

        for(
$i=0;$i<count($_SESSION['materias']);$i++){
            
$sql +="id_materia = ".$_SESSION['materias'][$i];
        }

    }
    
       
$sql += ") AND curso =2 AND id_ciclo = 1";
?>
Si hay un solo resultado no tendría problemas.

Si hay más de un resultados tendría algo como
id_materia = 4 or id_materia = 6 or --> de nuevo el OR quedaría flotando..

y es eso lo que no puedo resolver
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Última edición por loncho_rojas; 08/12/2015 a las 21:21