Foros del Web » Programando para Internet » PHP »

Error en el if

Estas en el tema de Error en el if en el foro de PHP en Foros del Web. Buenas, tengo un if que que me printa por pantalla las cosas que se encontraron segun las opciones que marcaron en un formulario. el problema ...
  #1 (permalink)  
Antiguo 20/06/2010, 09:26
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Error en el if

Buenas,

tengo un if que que me printa por pantalla las cosas que se encontraron segun las opciones que marcaron en un formulario. el problema es que le pongo un else para que diga que no se encontro nada si las opciones marcadas no se encuentan en la base de datos que tengo. y me pones ambas cosas tanto las cosas que encontro como el else. porque puede ser??

ejercicio:


Código PHP:
Ver original
  1. if ($_session[marca]==Audi){
  2.     for ($i=0; $i<=$total; $i++){
  3.      
  4.             if ($_session[tipo] == $_SESSION[Audi][cat_tipo][$i]){
  5.                 switch($_session[precio]){
  6.                     case '10.000-15.000':
  7.                         if($_SESSION[Audi][cat_precio][$i]>10.000 && $_SESSION[Audi][cat_precio][$i]<15.000){
  8.                             echo "<tr>";
  9.                             print "<td>".$_SESSION[Audi][cat_modelo][$i];
  10.                             echo "<br>";
  11.                             print "<img src=".$_SESSION[Audi][cat_img][$i]."></td>";
  12.                             print "<td colspan=2>Carburante: ". $_SESSION[Audi][cat_combustible][$i]."<br>";
  13.                             print "Tipo de Coche: ".$_SESSION[Audi][cat_tipo][$i]."<br>";
  14.                             print "Cv: ".$_SESSION[Audi][cat_cv][$i]."<br>";
  15.                             print "Extras: ".$_SESSION[Audi][cat_extras][$i]."<br>";
  16.                             print "Precio: ".$_SESSION[Audi][cat_precio][$i]."<br></td>";
  17.                             echo "</tr>";
  18.                            
  19.                         }
  20.                     break;
  21.                    
  22.                 }
  23.        
  24.             }else{
  25.                 print "No se encontraron vehiculos";
  26.             }
  27.     }    
  28. }
  29.  
  30. }
  #2 (permalink)  
Antiguo 20/06/2010, 10:24
 
Fecha de Ingreso: marzo-2010
Ubicación: San Luis Potosi
Mensajes: 41
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Error en el if

Bueno la ultima llave de cierre esta de mas, y no entiendo donde quires poner el else, lo que haces ahora:
if ($_session[marca]==Audi){//checa lo condicion if-1
//si se cumple entra al for
for ($i=0; $i<=$total; $i++){//se inicia el fro
if ($_session[tipo] == $_SESSION[Audi][cat_tipo][$i]){//if-2verifica
aqui vas el switch {
if($_SESSION[Audi][cat_precio][$i]>10.000 && $_SESSION[Audi][cat_precio][$i]<15.000){ //if-3{
}//cierras el if-3
}//cierras el switch
} cierras otro if-2
else{
print "No se encontraron vehiculos";
}

No se bien dond elo queires poner, si lo quieres poner despues que cheque el if-3 antes de cerrar ponlo antes de cerrar el witch. Saludos.
  #3 (permalink)  
Antiguo 20/06/2010, 10:54
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Error en el if

el else lo pongo porque si no encontro nada en la base de datos segun los datos que marco en el formulario, pues que ponga que no se encotro resultados.
el problema es que me sale igual el mensaje ese aunque encuentre resultado.

yo entiendo que eso pasa porque como esta en un for entonces pasa una ves tiene resultados lo muestras, vuelve a pasar no tiene resultados no lo muestra.

como se soluciona esto??
  #4 (permalink)  
Antiguo 23/06/2010, 13:24
 
Fecha de Ingreso: marzo-2010
Ubicación: San Luis Potosi
Mensajes: 41
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Error en el if

Mientras este dentro del for siempre se va a ejecutar. Necesitas sacarlo del for, o meter el else dentro del switch, de modo que se ejecute uno u otro.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:32.