Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema con las condiciones dentro de un while

Estas en el tema de problema con las condiciones dentro de un while en el foro de PHP en Foros del Web. bueno yo denuevo primero era que no podia poner los asientos horizontalmente pero ya me ayudaron y lo solucionaro pero ahora pasa que cuando selecciono ...
  #1 (permalink)  
Antiguo 14/04/2013, 20:24
 
Fecha de Ingreso: julio-2008
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación problema con las condiciones dentro de un while

bueno yo denuevo primero era que no podia poner los asientos horizontalmente pero ya me ayudaron y lo solucionaro pero ahora pasa que cuando selecciono los asientos que estan en la bd con un estado por ejemplo
Asiento 1 estado v (que seria vendido )
y hago la comparacion con el asiento generado y el asiento recuperado de la BD y tambien comparo el estado del asiento , debería cambiar la imagen del asiento pero no alterar la cantidad que se muestra por defecto.
solo cambia bien la imagen cuando el resultado de la BD es solo 1, cuando es mas de uno agrega mas asientos
pongo unas caps

con un resultado


con mas de uno


pongo el codigo que llevo donde estuve probando

Código PHP:
// Fila de Asientos  Ventana Izquierda
while ($a <= ($num_places 3) ){
    
//DESDE AQUI SELECCIONO LOS ASIENTOS -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$conn mysql_connect("localhost""root","root") or die(mysql_error());
$db mysql_select_db("bus") or die(mysql_error()); 
$query "SELECT place,status FROM buses_temp";

$result mysql_query($query) or die(mysql_error());

while (
$rows mysql_fetch_array($result)){
 
$asiento=$rows['place'] ;
$estado=$rows['status'] ;
 
        if (
$estado == 'v' and  $a == $asiento){
                 echo 
'<img src="gen_libs/images_bus/'.$a.'r.png" border="0" title="Vendido"></a>';
                
                 
$a $a +4;
                       }
         if(
$estado == 'r' and  $a == $asiento){    
                 echo 
'<img src="gen_libs/images_bus/'.$a.'g.png" border="0" title="Reservado"></a>';
                
                
$a $a +4;
                    }
         if(
$estado == 'p' and  $a == $asiento){    
                  echo 
'<img src="gen_libs/images_bus/'.$a.'s.png" border="0" title="Pendiente"></a>';
                 
                
$a $a +4;
                     }             
        if(
$estado!='v' or $estado!='r' or $estado!='p' and $asiento!=$a){
                echo 
'<a href="../ticket_mp.php?pl='.$a.'" target="_blank"><img src="gen_libs/images_bus/'.$a.'.png" border="0" title="LIBRE"></a>';
                
                
$a $a +4;
                 }
             
                                     }
  
            }
    
echo
"<p>"
  
// HASTA AQUI ES CODIGO QUE ESTOY PROBANDO CON LAS CONDICIONES PARA QUE CAMBIE LAS IMAGENES
  
// Fila de Asientos  Pasillo Izquierda
while ($b <= ($num_places 2)){
 
       echo 
'<a href="http://www.forosdelweb.com/f18/ticket_mp.php?pl='.$b.'" target="_blank"><img src="gen_libs/images_bus/'.$b.'.png" border="0" title="LIBRE"></a>';
      
$b $b +4;

  echo
"<p>"
// Fila de Asientos  Pasillo Derecha
while ($c <= $num_places ){
 
       echo 
'<a href="http://www.forosdelweb.com/f18/ticket_mp.php?pl='.$c.'" target="_blank"><img src="gen_libs/images_bus/'.$c.'.png" border="0" title="LIBRE"></a>';
      
$c $c +4;

  echo
"<p>"
// Fila de Asientos  Ventana Derecha
while ($d <= ($num_places-1) ){
 
       echo 
'<a href="http://www.forosdelweb.com/f18/ticket_mp.php?pl='.$d.'" target="_blank"><img src="gen_libs/images_bus/'.$d.'.png" border="0" title="LIBRE"></a>';
      
$d $d +4;

  echo
"<p>"
?> 
  #2 (permalink)  
Antiguo 15/04/2013, 05:36
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 3 meses
Puntos: 68
Respuesta: problema con las condiciones dentro de un while

Entonces el problema es que no sabes como poner dos asientos en estados diferentes en la imagen?
__________________
No diseñes usando tablas.
  #3 (permalink)  
Antiguo 15/04/2013, 13:50
 
Fecha de Ingreso: julio-2008
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problema con las condiciones dentro de un while

Claro ese es el problema que cuando es más de un asiento en diferente estado o iguales no lo muestra como debiera
  #4 (permalink)  
Antiguo 15/04/2013, 17:29
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: problema con las condiciones dentro de un while

Código PHP:
Ver original
  1. if($estado!='v' or $estado!='r' or $estado!='p' and $asiento!=$a)
Ese if se va a cumplir en más casos de los que pienso que quieres...
  #5 (permalink)  
Antiguo 15/04/2013, 19:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con las condiciones dentro de un while

Pero en cada iteración del while($a) haces una consulta a la base de datos para recorrer todos los registros encontrados?

Opciones más óptimas:

a) En la consulta deberías filtrar por número de asiento, de forma que sólo sea una consulta en cada iteración y te evitas comparar si $a == $asiento

b) Hacer la consulta antes de ingresar al while(), cargando los registros en un array, de forma que después sólo verifiques si $a está en el array y tomar el estado.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 16/04/2013, 14:15
 
Fecha de Ingreso: julio-2008
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problema con las condiciones dentro de un while

hice la consulta filtrando con el asiento, pero se me repiten los que encuentra

Código PHP:
$a 1
$b 2
$c 4
$d 3
 
$num_places=44
 
// Fila de Asientos  Ventana Izquierda
while ($a <= ($num_places 3) ){
    
//DESDE AQUI SELECCIONO LOS ASIENTOS -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  
$conn mysql_connect("localhost""root","root") or die(mysql_error());
$db mysql_select_db("bus") or die(mysql_error()); 
$query "SELECT place,status FROM buses_temp where place =$a";
$result mysql_query($query) or die(mysql_error());

while (
$rows mysql_fetch_array($result)){
    
$estado $rows['status'];
         if (
$estado == 'v' ){ 
                 echo 
'<img src="gen_libs/images_bus/'.$a.'r.png" border="0" title="Vendido"></a>'
                           } 
                          
         if(
$estado == 'r' ){     
                 echo 
'<img src="gen_libs/images_bus/'.$a.'g.png" border="0" title="Reservado"></a>'
                             } 
                            
         if(
$estado == 'p' ){     
                  echo 
'<img src="gen_libs/images_bus/'.$a.'s.png" border="0" title="Pendiente"></a>'
                              } 
                                             }
     echo 
'<a href="ticket_mp.php?pl='.$a.'" target="_blank"><img src="gen_libs/images_bus/'.$a.'.png" border="0" title="LIBRE"></a>';
     
$a $a 4;

      
                                }
    
echo
"<p>"
  
// HASTA AQUI ES CODIGO QUE ESTOY PROBANDO CON LAS CONDICIONES PARA QUE CAMBIE LAS IMAGENES 

Última edición por DjBetho; 16/04/2013 a las 14:17 Razón: agregar imagen
  #7 (permalink)  
Antiguo 16/04/2013, 18:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con las condiciones dentro de un while

Coloca el último echo dentro de un else y listo, ejemplo:

Código PHP:
Ver original
  1. if(/* condicion 1 */) {
  2.     echo 'imagen de acuerdo al estado';
  3. } else if(/* condicion 2 */) {
  4.     echo 'imagen de acuerdo al estado';
  5. } else if(/* condicion N */) {
  6.     echo 'imagen de acuerdo al estado';
  7. } else {
  8.     echo 'imagen cuando no se cumple una de las condiciones previas';
  9. }
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 16/04/2013, 21:02
 
Fecha de Ingreso: julio-2008
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problema con las condiciones dentro de un while

Ya ahora si, solo me faltaba un if para comprobar si exisitan registro si es asi comprueba los asientos con las condiciones y si no muestra las imagenes normales
dejo el codigo para que lo vean Gracias a todos lo que mea ayudaron
Código PHP:


$a 
1
$b 2
$c 4
$d 3
 
$num_places=44
 
// Fila de Asientos  Ventana Izquierda
while ($a <= ($num_places 3) ){
    
//DESDE AQUI SELECCIONO LOS ASIENTOS -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  
$conn mysql_connect("localhost""root","root") or die(mysql_error());
$db mysql_select_db("bus") or die(mysql_error()); 
$query "SELECT place,status FROM buses_temp where place =$a";
$result mysql_query($query) or die(mysql_error());
if (
mysql_num_rows($result)>0){//Verificar si existen registro de la consulta hecha

while ($rows mysql_fetch_array($result)){//Comprueba cada Registro con el asiento 

    
$estado $rows['status'];
if (
$estado == 'v' ){ 
    echo 
'<img src="gen_libs/images_bus/'.$a.'r.png" border="0" title="Vendido"></a>'

else if(
$estado == 'r' ){     
    echo 
'<img src="gen_libs/images_bus/'.$a.'g.png" border="0" title="Reservado"></a>'

else if(
$estado == 'p' ){     
    echo 
'<img src="gen_libs/images_bus/'.$a.'s.png" border="0" title="Pendiente"></a>'
}
                                            }
                                }
else { 
//si no existen Registro se muestra normal
    
echo '<a href="ticket_mp.php?pl='.$a.'" target="_blank"><img src="gen_libs/images_bus/'.$a.'.png" border="0" title="LIBRE"></a>';
}
                            
$a $a 4;    
                                }
                            
    
echo
"<p>"
  
// ------------------------ 

Etiquetas: condiciones, mysql, select, sql
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 09:36.