Foros del Web » Programando para Internet » PHP »

Invalid argument supplied for foreach()

Estas en el tema de Invalid argument supplied for foreach() en el foro de PHP en Foros del Web. Hola mi problema es el siguiente: Tengo una pagina con php que accede a una base de datos de mysql y con el xampp en ...
  #1 (permalink)  
Antiguo 10/02/2013, 05:55
 
Fecha de Ingreso: febrero-2013
Mensajes: 2
Antigüedad: 11 años, 2 meses
Puntos: 0
Invalid argument supplied for foreach()

Hola mi problema es el siguiente:
Tengo una pagina con php que accede a una base de datos de mysql y con el xampp en localhost funciona perfectamente, el problema es al subirla a un servidor ya que no me carga los datos y me pone Invalid argument supplied for foreach().

El codigo es dentro de arbitros.php:

if(isset($_REQUEST['ID_ARBITRO']))
{
$ID_ARBITRO=$_REQUEST['ID_ARBITRO'];
$url="http://localhost/xampp/estatics/arbitro.php/".$ID_ARBITRO;

}
$client=curl_init($url);
curl_setopt($client, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($client);
curl_close($client);
$xml=simplexml_load_string($result);

foreach ($xml->ARBITRO as $ARBITRO)
{
$ARBITRO->AMARILLAS_L ......
}
-----------------------------------------------
y dentro de arbitro.php:


function imprimir_result($query, $root_element, $wrapper_element)
{
$result=mysql_query($query) or die (mysql_error());
echo "<$root_element>";
while ($linea=mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<$wrapper_element>";
foreach($linea as $clave => $valor_colum)
{
echo "<$clave>$valor_colum</$clave>";
}
echo "</$wrapper_element>";
}
echo "</$root_element>";
mysql_free_result($result);
}


function get_partidos_by_arbitro($ID_ARBITRO)
{
$query="SELECT * FROM partidos WHERE ARBITRO=(SELECT NOMBRE FROM ARBITROS WHERE ID_ARBITRO='$ID_ARBITRO') AND TIROS_L!=0";
$root_element='ARBITRO';
$wrapper_element='ARBITRO';
imprimir_result($query, $root_element,$wrapper_element);

}

if ($_SERVER['REQUEST_METHOD']=='GET')
{
if (($path_params[1]!=null))
{
get_partidos_by_arbitro($path_params[1]);
}
}


------------------------------------------------------------
El caso es que en la linea de rojo es donde me marca el error.
El xml se me construye bien ya que si pongo x ejemplo http://localhost/xampp/estatics/arbitro.php/A1 me sale el XML bien construido...
Como ya he dicho en localhost se me carga todo perfectamente (las url que he puesto son las que tengo de localhost x no poner las del servidor ke estas las tenia mas a mano).

Otra cosa tambien es que en arbitros.php tb tengo en el codigo:
$query3="SELECT NOMBRE FROM arbitros WHERE ID_ARBITRO = '$ID_ARBITRO'";
$result3=mysql_query($query3) or die (mysql_error());
while ($linea=mysql_fetch_array($result3, MYSQL_ASSOC))
{
foreach($linea as $clave => $valor_colum)
{
if ($clave=="NOMBRE")
{
print("$valor_colum");

}
}
}


y esta si que me funciona correctamente en el servidor...
Asi que nose si sera el $xml=simplexml_load_string($result); que no me lo carga bien o nose...

PD: si pongo var_dump($xml); me devuelve: bool(false)

Haber si me podeis ayudar!Gracias!
  #2 (permalink)  
Antiguo 11/02/2013, 00:51
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Invalid argument supplied for foreach()

Cita:
PD: si pongo var_dump($xml); me devuelve: bool(false)
Claramente te has contestado tu mismo, simplexml no puede generar el DOM desde la fuente indicada, por obvias razones no puede generarse el loop, verifica bien que cURL retorne un XML valido...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 11/02/2013, 07:07
 
Fecha de Ingreso: febrero-2013
Mensajes: 2
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Invalid argument supplied for foreach()

Despues de rayarme sin conseguirlo.. decidi cambiar de hosting y alli si que me funciona perfectamente sin cambiar nada...
Ya tenia en cuenta lo del curl ya que para habilitarlo en el xampp tenia que descomentar el php_curl.dll.. pero como en el servidor donde alojaba la pagina ponia
cURL support enabled
cURL Information 7.15.5 , etc..
supuse que estaba disponible,que funcionaria correctamente y que no seria problema de eso.. asi que no se si ese era el problema pero n otro host me va bien.
Gracias de todas formas.

Etiquetas: invalid, 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:38.