Foros del Web » Programando para Internet » PHP »

foreach e If con arreglos

Estas en el tema de foreach e If con arreglos en el foro de PHP en Foros del Web. Atraves de un ciclo y de un arreglo en la variable $reservadofecha[$j]: $j=1; while ($tempreserva < $fechareserva) { $reservadofecha[$j]=mysql_result( $resultadoverdispon,$tempreserva,'id_fiestacalenda rio'); $tempreserva++; $j++; } Se ...
  #1 (permalink)  
Antiguo 18/10/2010, 11:43
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 13 años, 6 meses
Puntos: 0
foreach e If con arreglos

Atraves de un ciclo y de un arreglo en la variable $reservadofecha[$j]:

$j=1;
while ($tempreserva < $fechareserva) {


$reservadofecha[$j]=mysql_result( $resultadoverdispon,$tempreserva,'id_fiestacalenda rio');
$tempreserva++;
$j++;

}
Se recogen los siguientes valores: 9 , 20 y 5

Luego desde un form y caja de texto con el name="fechareserva" seleccionan uno de los ID por ejemplo el valor de 9 atravez de un:

$idfechareserva=$_POST['fechareserva'];

Ahora solo quiero comparar la variable $idfechareserva con el arreglo $reservadofecha[$j] y lo realizo por medio del:


foreach ( $reservadofecha as $a)

{

echo "if ($a == $idfechareserva)";
if ($a == $idfechareserva)

{
echo "Reservado";

}

else

{
echo "Disponible";

}

}

El problema es que cuando hace la comparación con el echo "if ($a == $idfechareserva)" me muestra bien esas comparaciones pero cuando entran en al condición
if ($a == $idfechareserva) no ingresa al echo "Reservado" ya que ahi existe un if (9 == 9 ) en la variable $a y $idfechareserva no se donde esta el problema ya que no ingresa en esta condición..
  #2 (permalink)  
Antiguo 18/10/2010, 11:56
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: foreach e If con arreglos

Habría que ver qué datos obtienes de la DB, tal como tú lo muestras debe funcionar.

Código PHP:
<?php

$reservadofecha 
= array(
'2010-10-15',
'2010-10-14',
'2010-10-18',
'2010-10-12',
'2010-10-11'
);

$idfechareserva date("Y-m-d");


foreach ( 
$reservadofecha as $a)

{

    echo 
"if ($a == $idfechareserva)";
    if (
$a == $idfechareserva)

    {
        echo 
"<h3>Reservado</h3>";

    }

    else

    {
        echo 
"<h3>Disponible</h3>";

    }

}

?>
Sin embargo, es posible el tipo de datos no sea el mismo, para comprobarlo utiliza

Código PHP:
if ($a === $idfechareserva
esto compara valor y tipo de datos, de manera que sabrás si estás comparando un string con una fecha, por ejemplo.
A ver si te funciona, si no, pon algunos datos de los que obtienes de la db.
Salu2
  #3 (permalink)  
Antiguo 18/10/2010, 12:04
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: foreach e If con arreglos

muchas gracias por contestar; pero para el arreglo recojo unos ID en este caso los que mencione y en el form lo que hace el usuario es seleccionar un valor y paso por debajo un ID en este caso por ejemplo el ID 9 pero el if del foreach no se que pasa no compara por eso le mande el echo y ya coloque los === y nada...Qué sera?
  #4 (permalink)  
Antiguo 18/10/2010, 12:11
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: foreach e If con arreglos

Si los datos vienen por $_POST prueba quitar espacios en blanco con:

Código PHP:
trim($_POST['ID']) 
.
También puedes comprobar el tipo con

Código PHP:
$id = (int)$_POST['ID']; 
1saludo
  #5 (permalink)  
Antiguo 18/10/2010, 12:28
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: foreach e If con arreglos

!!EXCELENTE, que buena respuesta no habia caido en cuenta, muchas gracias Repara2 por su pronta y agil solución

Etiquetas: arreglos, foreach
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 04:53.