Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/09/2012, 10:53
Avatar de Middrel
Middrel
 
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Problemas de consultas MySQL en PHP

Bueno, el segundo caso es el siguiente, el cuál no he podido hacer que funcione completo hasta este momento que funcionan 3 de los 6 filtros.

Yo tengo en la página principal una buscador que hace lo siguiente: busca por Año, Producto, Marca, Modelo, Submodelo y Versión.

Siguiendo la línea del código anterior hice esto:

Código PHP:
if (isset($_POST['buscarAvz'])) {
    
            
$producto     $_POST['producto'];
            
$marca         $_POST['marca'];
            
$modelo        $_POST['modelo'];
            
$submodelo    $_POST['submodelo'];
            
$version    $_POST['version'];
            
$anio        $_POST['anio'];
            
$flag        0;

            if(
$producto 0) { $flag 1; }
            if(
$producto and $marca 0) { $flag 2; }
            if(
$producto and $marca and $modelo 0) { $flag 3; }
            if(
$producto and $marca and $modelo and $submodelo 0) { $flag 4; }
            if(
$producto and $marca and $modelo and $version != "" ) { $flag 5; }
            
            if(
$flag == 1) {
                
                
$selectBusqueda "Select codigo_barras, nombre, anio, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio, Group_Concat(Distinct anio Order by anio Desc Separator ', ') as anio_concatenado
                                From productos as prod
                                Left Join marca as marca On (id_marca = prod.marca)
                                Left Join marca_coche as mcoche On (id_mcoche = prod.marca_coche)
                                Left Join modelo as model On (id_modelo = prod.modelo)
                                Left Join submodelos as sub On (id_submodelo = prod.submodelo)
                                WHERE prod.marca = '$_POST[producto]' 
                                Group By codigo_barras, nombre, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio"
;                       
                               
                               
                
$queryBusqueda=mysql_query($selectBusqueda);
                
$numRegistros=mysql_num_rows($queryBusqueda);
                
            }
            
            if(
$flag == 2) {
                
                
$selectBusqueda "Select codigo_barras, nombre, anio, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio, Group_Concat(Distinct anio Order by anio Desc Separator ', ') as anio_concatenado
                                From productos as prod
                                Left Join marca as marca On (id_marca = prod.marca)
                                Left Join marca_coche as mcoche On (id_mcoche = prod.marca_coche)
                                Left Join modelo as model On (id_modelo = prod.modelo)
                                Left Join submodelos as sub On (id_submodelo = prod.submodelo)
                                WHERE prod.marca = '$_POST[producto]' 
                                and prod.marca_coche = '$_POST[marca]'
                                Group By codigo_barras, nombre, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio"
;                       
                               
                               
                
$queryBusqueda=mysql_query($selectBusqueda);
                
$numRegistros=mysql_num_rows($queryBusqueda);
                
            }
            
            if(
$flag == 3) {
                
                
$selectBusqueda "Select codigo_barras, nombre, anio, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio, Group_Concat(Distinct anio Order by anio Desc Separator ', ') as anio_concatenado
                                From productos as prod
                                Left Join marca as marca On (id_marca = prod.marca)
                                Left Join marca_coche as mcoche On (id_mcoche = prod.marca_coche)
                                Left Join modelo as model On (id_modelo = prod.modelo)
                                Left Join submodelos as sub On (id_submodelo = prod.submodelo)
                                WHERE prod.marca = '$_POST[producto]' 
                                and prod.marca_coche = '$_POST[marca]'
                                and prod.modelo = '$_POST[modelo]'
                                Group By codigo_barras, nombre, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio"
;                       
                               
                               
                
$queryBusqueda=mysql_query($selectBusqueda);
                
$numRegistros=mysql_num_rows($queryBusqueda);
                
            }
            
            if(
$flag == 4) {
                
                
$selectBusqueda "Select codigo_barras, nombre, anio, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio, Group_Concat(Distinct anio Order by anio Desc Separator ', ') as anio_concatenado
                                From productos as prod
                                Left Join marca as marca On (id_marca = prod.marca)
                                Left Join marca_coche as mcoche On (id_mcoche = prod.marca_coche)
                                Left Join modelo as model On (id_modelo = prod.modelo)
                                Left Join submodelos as sub On (sub.id_submodelo = prod.submodelo)
                                WHERE prod.marca = '$_POST[producto]' 
                                and prod.marca_coche = '$_POST[marca]'
                                and prod.modelo = '$_POST[modelo]'
                                and prod.submodelo = '$_POST[submodelo]'
                                Group By codigo_barras, nombre, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio"
;                       
                               
                               
                
$queryBusqueda=mysql_query($selectBusqueda);
                
$numRegistros=mysql_num_rows($queryBusqueda);
                
            }
            
            if(
$flag == 5) {
                
                
$selectBusqueda "Select codigo_barras, nombre, anio, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio, Group_Concat(Distinct anio Order by anio Desc Separator ', ') as anio_concatenado
                                From productos as prod
                                Left Join marca as marca On (id_marca = prod.marca)
                                Left Join marca_coche as mcoche On (id_mcoche = prod.marca_coche)
                                Left Join modelo as model On (id_modelo = prod.modelo)
                                Left Join submodelos as sub On (id_submodelo = prod.submodelo)
                                WHERE prod.marca = '$_POST[producto]' 
                                and prod.marca_coche = '$_POST[marca]'
                                and prod.modelo = '$_POST[modelo]'
                                and prod.submodelo = '$_POST[submodelo]'
                                and version = '$_POST[version]'
                                Group By codigo_barras, nombre, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, version, precio"
;                       
                               
                               
                
$queryBusqueda=mysql_query($selectBusqueda);
                
$numRegistros=mysql_num_rows($queryBusqueda);
                
            }        

la forma en que hago que se carguen los combobox's de búsqueda es mediante Javascript de esta forma:

Código:
$(document).ready(function(){
        $("#producto").change(function(event){
            var id = $("#producto").find(':selected').val();
            $("#marca").load('producto.php?id='+id);
        });
		
		 $("#marca").change(function(event){
            var idm = $("#marca").find(':selected').val();
            $("#modelo").load('producto2.php?idm='+idm);
        });
		
		$("#modelo").change(function(event){
            var idml = $("#modelo").find(':selected').val();
            $("#submodelo").load('producto3.php?idml='+idml);
        });
    });

Ahora, el flag 1 al 3 funcionan perfectamente, es decir, cuando selecciono por Producto, Producto+Marca, Producto+Marca+Modelo. Sin embargo cuando hago la selección de búsqueda por Producto+Marca+Modelo+Submodelo ya no funciona, ni siquiera entra en el flag 4 y consecuentemente a los flags más altos tampoco entra.

¿Alguna idea sobre esto?