Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2013, 04:14
Avatar de CMushroom
CMushroom
 
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 13 años, 2 meses
Puntos: 1
Pregunta Componer query de filtro para consulta

E construido un filtro para cionsulta echa dinamicamente bajo criterios pero cuando los valores que se incluyen la variable $criterios son numericos ejecuta el query bien pero cuando son string no lo hace bien.Si el query lo mando imprimir en pantalla, lo copio y pego en sql de phpmyadmin y le agrego comillas a los valores que no son numericos en la base de datos, ejecuta bien el query.

ejemplo query de la variable $consulta con comillas (como lo pongo en el ejecutor de sql phpmyadmin):

Código PHP:
SELECT 
FROM alumnoscreditoscursosexamen_medca
WHERE alumnos
.IdAlumno creditos.IdAlumno && alumnos.IdAlumno cursos.IdAlumno && alumnos.IdAlumno examen_medca.IdAlumno && alumnos.ClaveLicenciatura =001 && alumnos.Turno "Matutino" && alumnos.sexo =  "Masculino" 
ejemplo query de la variable $consulta sin comillas( como lo imprime el navegador si pongo :
echo $consulta;
en el codigo para ver la salida del query ):

Código PHP:
SELECT 
FROM alumnoscreditoscursosexamen_medca
WHERE alumnos
.IdAlumno creditos.IdAlumno && alumnos.IdAlumno cursos.IdAlumno && alumnos.IdAlumno examen_medca.IdAlumno && alumnos.ClaveLicenciatura =001 && alumnos.Turno Matutino && alumnos.sexo =  Masculino 
Este es el codigo del filtro:

Código PHP:
$Matricula 0
$Licenciatura 0
$Semestre 0;
$Grupo 0
$Turno 0
$Sexo 0

if (isset(
$_POST["Matricula"]))
    {
    
$Matricula $_POST["Matricula"]; 
    }
if (isset(
$_POST["Licenciatura"])) 
    {
    
$Licenciatura $_POST["Licenciatura"]; 
    } 
if (isset(
$_POST["Semestre"]))
    {
    
$Semestre $_POST["Semestre"];
    }
if (isset(
$_POST["Grupo"])) 
    {
    
$Grupo $_POST["Grupo"]; 
    }
if (isset(
$_POST["Turno"]))
    {
    
$Turno $_POST["Turno"]; 
    }
if (isset(
$_POST["Sexo"])) 
    {
    
$Sexo $_POST["Sexo"]; 
    }                  
echo 
"<br>".$Licenciatura."<br> ".$Turno."<br> ".$Sexo." <br>";

$criterios "";
if (
$Matricula != 0
    {
    
$criterios .= "alumnos.IdAlumno = ".$Matricula." ";
    }
if (
$Licenciatura != 0
    {
    
$criterios .= "alumnos.ClaveLicenciatura = ".$Licenciatura." ";
    }    
if (
$Grupo != 0
    {
    
$criterios .= " && alumnos.IdGrupo = ".$Grupo ." ";
    }
if (
$Semestre != 0
    {
    
$criterios .= " && alumnos.IdGrupo = ".$Semestre." ";
    }
if (
$Turno != 0
    {
    if(
$Turno==1)$Turno "Matutino";
    if(
$Turno==2)$Turno "Vespertino";
    
$criterios .= " && alumnos.Turno = ".$Turno." ";
    }
if (
$Sexo != 0
    {
    if(
$Sexo==1)$Sexo "Masculino";
    if(
$Sexo==2)$Sexo "Femenino";
    
$criterios .= " && alumnos.sexo = ".$Sexo." ";
    }    

@
$consulta 'SELECT * FROM alumnos, creditos, cursos, examen_medca WHERE alumnos.IdAlumno = creditos.IdAlumno && alumnos.IdAlumno = cursos.IdAlumno && alumnos.IdAlumno = examen_medca.IdAlumno && '.$criterios.'';    
$datos mysql_query($consulta,$conexion); 
Que puedo hacer:

este es my formulario:

Código HTML:
 <br>Ingrese los datos de busqueda<br><br>
            <form action="MostrarC.php" method="POST" class="estiloformulario"> 
			<br> 
            <input type="text" placeholder="Introduzca Matricula" name="Matricula" maxlength="35" class="button" /> Matricula
            <br><br> 
            <select name="Licenciatura" class="button" > 
                <option>Seleccione una Opción...</option>   
                <option value="001">Informatica</option> 
                <option value="002">Contaduria</option>
                <option value="003">Administracion</option> 
                <option value="004">Administracion a distancia</option>         
            </select> Licenciatura
            <br /><br />
            <select name="Grupo" class="button" >
                <option >Seleccione una Opción...</option> 
                <option value="1">1 uli</option>    
                <option value="2">2 uli</option>    
                <option value="3">3 uli</option> 
                <option value="4">4 uli</option>    
                <option value="5">5 uli</option>    
                <option value="6">6 uli</option> 
                <option value="7">7 uli</option>    
                <option value="8">8 uli</option>     
            </select> Grupo
            <br /><br />
            <select name="Semestre" class="button" >
                <option>Seleccione una Opción...</option>   
                <option value="1">1er</option>    
                <option value="2">2do</option>    
                <option value="3">3er</option>
                <option value="4">4to</option>    
                <option value="5">5to</option>    
                <option value="6">6to</option> 
                <option value="7">7mo</option>    
                <option value="8">8vo</option>    
                <option value="9">9no</option>
                <option value="10">10mo</option>              
            </select> Semestre
            <br /><br />
            <select name="Turno" class="button" >   
                <option>Seleccione una Opción...</option> 
                <option value="1">Matutino</option> 
                <option value="2">Vespertino</option>              
            </select> Turno
            <br /><br />
            <select name="Sexo" class="button" >   
                <option >Seleccione una Opción...</option>
                <option value="1">Masculino</option> 
                <option value="2">Femenino</option>              
            </select> Sexo
            <br /><br />
            <input type="submit" value="Registrar"/>
        </form>