Ver Mensaje Individual
  #16 (permalink)  
Antiguo 05/12/2003, 18:37
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Muy sencillo. Foreach necesita que el parametro sea un array. Si no es un array da ese error. Eso quiere decir que $vehiculos2 no es un array. ¿Y por que no es un array? Pues porque la consulta no ha devuelto ningun registro. ¿Como se soluciona? Pues yo lo que hago es inicializar siempre las variables. Asi tendrias que hacer:
Código PHP:
<?php

// MUESTRA TODOS LOS COCHES EN UN DETERMINADO APARCAMIENTO

open();

$query "SELECT coches.matricula FROM coches WHERE (aparcamiento = '$aparcamiento')";

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

$vehiculos=array();  // INICIALIZAMOS $vehiculos a un array vacio

while($vehiculo mysql_fetch_array($result))

$vehiculos[]=$vehiculo;



// TODOS LOS COCHES EN UN DETERMINADO APARCAMIENTO Y FECHA

open();

$query "SELECT reserva.matricula FROM coches INNER JOIN reserva ON

 (coches.matricula = reserva.matricula) WHERE (fecha = '$fecha') AND (aparcamiento = '$aparcamiento')"
;

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

$vehiculos2=array();  // INICIALIZAMOS $vehiculos2 a un array vacio


while($vehiculo2 mysql_fetch_array($result))

$vehiculos2[]=$vehiculo2

 
// Código de Josemi

$resultado=array();

foreach (
$vehiculos as $vehiculo) {

  
$esta=false

foreach (
$vehiculos2 as $vehiculo2) { //Josemi esta es la línea 38 donde dice que está el error¿?

    
if ($vehiculo['matricula']==$vehiculo2['matricula']) {

      
$esta=true;

      break;

  }

  }

  if (!
$esta$resultado[]=$vehiculo;

}

?>
Con esas inicializaciones, en caso de no haber registros y no entrar en los while, $vehiculos y $vehiculos2 todavia serian un array (vacio, pero array).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.