Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2011, 10:51
palme90
 
Fecha de Ingreso: abril-2011
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
Error con anidado de if's

Hola, estoy desde hace unos días intentando hacer andar un buscador de autos que necesito que me filtre por Marca y Tipo de auto..
El programa falla cuando se filtra 'Todas las marcas' (que sería 999) y al mismo tiempo se filtra por algún tipo en específico.

Código PHP:
if(isset ($_POST['marcas']) && isset ($_POST['tipo']))
{

    
    if(
$_POST['marcas'] == 999) {
//Si está Marcas en 'Todas'
            
if($_POST['tipo'] == 999) {
//y si ademas esta tipo en 'todos'
                
$consule mysql_query ("SELECT Marca, Modelo, Tipo, Dominio, Anio, Precio
                           FROM Vehiculos AS v
                           INNER JOIN Modelos AS m ON ( m.idModelo = v.idModelo )
                           INNER JOIN Tipos AS t ON ( t.idTipo = v.idTipo )
                           INNER JOIN Marcas AS marc ON ( marc.idMarca = m.idMarca ) 
                           ORDER BY Marca"
) or die ('Fallo La Consulta1:'mysql_error());    
            }
//esta consulta anterior funciona
            
else {
//si tipo está en algo específico (auto o camioneta) 
                    
$consule mysql_query ("SELECT Marca, Modelo, Tipo, Dominio, Anio, Precio
                           FROM Vehiculos AS v
                           INNER JOIN Modelos AS m ON ( m.idModelo = v.idModelo )
                           INNER JOIN Tipos AS t ON ( t.idTipo = v.idTipo )
                           INNER JOIN Marcas AS marc ON ( marc.idMarca = m.idMarca ) 
                           WHERE Tipo = '$_POST[tipo]'" 
or die ('Fallo La Consulta2:'mysql_error()));
            }
//esta consulta anterior es la única que NO funciona

    
}
    else {
//si se filtra por marca
            
if($_POST['tipo'] != 999) {
//y ademas se filtra por tipo
                 
$consule mysql_query ("SELECT Marca, Modelo, Tipo, Dominio, Anio, Precio
                           FROM Vehiculos AS v
                           INNER JOIN Modelos AS m ON ( m.idModelo = v.idModelo )
                           INNER JOIN Tipos AS t ON ( t.idTipo = v.idTipo )
                           INNER JOIN Marcas AS marc ON ( marc.idMarca = m.idMarca )
                           WHERE Marca = '$_POST[marcas]' and Tipo = '$_POST[tipo]'"
) or die ('Fallo La Consulta3:'mysql_error());
//esto funcioan OK
            
}
            else {
//si se filtra por marca pero no por tipo
                
$consule mysql_query ("SELECT Marca, Modelo, Tipo, Dominio, Anio, Precio
                           FROM Vehiculos AS v
                           INNER JOIN Modelos AS m ON ( m.idModelo = v.idModelo )
                           INNER JOIN Tipos AS t ON ( t.idTipo = v.idTipo )
                           INNER JOIN Marcas AS marc ON ( marc.idMarca = m.idMarca ) 
                           WHERE Marca = '$_POST[marcas]'"
) or die ('Fallo La Consulta4:'mysql_error());
            }
//esto funciona OK
        
    
}


El error que me sale es:
Cita:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /virtualmin/grupo07/public_html/automoviles.php on line 172
Y en la línea 172 tengo esto:

Código PHP:
while ($row mysql_fetch_array($consule)){
            
            echo 
"<tr> <td> $row[Marca] </td>";
            echo 
"<td>"$row['Modelo']. "</td>";
            echo 
"<td>"$row['Tipo']. "</td>";
            echo 
"<td>"$row['Dominio']. "</td>";
            echo 
"<td>"$row['Anio']. "</td>";
            echo 
"<td>"$row['Precio']. "</td></tr>";
            echo 
"<br>";

(que funciona en todas las consultas excepto la indicada)



Gracias