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

Buenos días,

Tengo un problema con unas consultas que no me funcionan en PHP, pero si las ejecuto en Mysql funcionan bien, les detallo como esta el caso:

Tengo 6 tablas, las cuales son:

Tabla menu:
id_menu nombre

Tabla marca
id_marca marca

Tabla marca_coche
id_mcoche marca_coche

Tabla modelo
id_modelo modelo

Tabla submodelos
id_submodelo submodelo

Tabla productos
id_productos codigo_barras nombre caracteristicas id_menu anio marca marca_coche modelo submodelo version

Donde, en la tabla productos, los campos de id_menu, marca, marca_coche, modelo y submodelo están ligados con las tablas anteriores por el id.

Ahora me iré por partes porque no quiero confundirlos. Son tres consultas que puedo hacer en la página de productos.php.

La primera trata así: Si desde cualquier otra sección diferente a productos.php, le doy click en un menú para ir hacia esa página, sucede esto:

http://localhost/eyg/productos.php?menu=3

es decir, se configura la variable "menu" al valor correspondiente a la tabla menu por el id, en este caso fue 3.

y se ejecuta el siguiente script:

Código PHP:
<?php
            
var_dump
($_GET);          
$idmenu $_GET['menu'];
$marcaGet $_GET['marca'];
$marcaChe $_GET['marca_coche'];
        
if(isset(
$idmenu)) {
    
$selectBusqueda "Select id_menu, 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 id_menu = $idmenu
                            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);
             
}
Hasta aquí, todo va bien. Sin embargo, si en el menu, selecciono la marca o el modelo se envía lo siguiente:

http://localhost/eyg/productos.php?m...ca_coche=ACURA

intenté hacer esto para obtener la consulta ahora con la marca y el menu

Código PHP:
elseif(isset($idmenu) and isset($marcaGet)) {
    
$selectBusqueda "Select id_menu, 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 id_menu = $idmenu
                            and marca.marca = $marcaGet
                            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);
                     

Sin embargo la consulta ya no funciona, es decir, al parecer nunca entra en el segundo if (elseif). La segunda consulta, así como la primera funciona bien en MySql, el problema radica cuando llevo la información a PHP.

Esta es sólo la primera de tres secciones de búsqueda, pero por el momento sólo pongo aquí la primera. ¿alguien tiene alguna idea de en que estoy equivocándome?

De antemano agradezco sus comentarios. Saludos.

Por cierto! No puse el código donde se muestra la información en la página porque trae la información de acuerdo a la consulta, es decir la trae bien, el problema es que la segunda consulta no esta siendo ejecutada.