tengo el siguiente código, lo que haces es conectarse mediante una clase a hattrick.org y obtener una serie de datos, el tema es que los id de los equipos los saca de mi base de datos son unos 450 registros, hasta ahí todo bien. Pero desde que arme el script solamente lo pude correr correctamente 2 veces. Todas las demás me demora una eternidad y no me actualiza todos los datos, y no se si es problema del servidor, lo probé en uno gratis y en el pago que tengo (curiosamente las veces que anduvo fue en el gratis), del script o de mi conexión de internet.
El código es el siguiente:
Código PHP:
<?
require_once 'HTClient.php';
session_start();
if (! $_SESSION['htclient']) {
header('Location: error.php?code=0');
exit();
}
echo '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; CHARSET=UTF-8" />
</head>
<body>';
// Get the HTClient class instance from session variables.
$htclient = $_SESSION['htclient'];
//datos conexion base de datos
$dbhost = "localhost";
$dbname = "***";
$dbuser = "***";
$dbpassword = "**";
$i=1;
if ( $link = mysql_connect($dbhost,$dbuser,$dbpassword) )
{
if ( mysql_select_db($dbname, $link) )
{
$query1="SELECT * FROM `aseh_estadisticas`";
$result1 = mysql_query($query1);
echo' <div align="center">
<table width="391" height="235" border="1" cellpadding="0" cellspacing="0">';
while ( $row = mysql_fetch_array( $result1, MYSQL_ASSOC ) ){
echo '<tr>
<td colspan="4"><div align="center">'.$i.'</div></td>
<td colspan="4"><div align="center">'.$row["id_hattrick"].'</div></td>
<td colspan="4"><div align="center">'.$row["nombre_eq"].'</div></td>
<td colspan="4"><div align="center">'.$row["estrellas"].'</div></td>
<td colspan="4"><div align="center">'.$row["estado"].'</div></td>
</tr>';
$i++;
}// fin while $row = mysql_fetch_array( $result1, MYSQL_ASSOC )
echo '</table></div> <br />';
echo '<div align="center">
<table width="391" height="235" border="1" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center">n</div></td>
<td><div align="center">Id</div></td>
<td><div align="center">nombre</div></td>
<td><div align="center">estrellas</div></td>
<td><div align="center">lignivID</div></td>
<td><div align="center">ligNom</div></td>
<td><div align="center">Liga Nivel</div></td>
<td><div align="center">ranking</div></td>
<td><div align="center">estado</div></td>
<td><div align="center">estadio id</div></td>
<td><div align="center">estadio</div></td>
<td><div align="center">tamao</div></td>
</tr>';
//actualiza
$query = "SELECT * FROM `aseh_estadisticas`";
if ( $result = mysql_query($query) )
{
$i = 0;
while ( $row = mysql_fetch_array( $result, MYSQL_ASSOC ) )
$teamID[$i++] = $row["id_hattrick"];
for ( $i =0; $i < count($teamID); $i++ )
{
$teamDetails=$htclient->getTeamDetails($teamID[$i]);
//$arenaid=$teamDetails['ARENAID'];
$arenaDetails = $htclient->ArenaDetails($teamDetails['ARENAID']);
$matches = $htclient->getMatches($teamID[$i]);
$matchID = 0;
$stars = 0;
for ( $m = 0; $m < count($matches["MATCH"]); $m++ )
{
if ( ( $matches["MATCH"][$m]["MATCHTYPE"] == 1 ) && ( $matches["MATCH"][$m]["STATUS"] == "FINISHED" ) )
$matchID = $matches["MATCH"][$m]["MATCHID"];
}// fin for ( $m = 0; $m < count($matches["MATCH"]); $m++ )
if ( $matchID )
{
$matchLineup = $htclient->getMatchLineup($matchID, $teamID[$i]);
for ( $m = 0; $m < count($matchLineup['PLAYER']); $m++ )
{
if ( ( $matchLineup["PLAYER"][$m]["ROLEID"] >= 1 ) && ( $matchLineup["PLAYER"][$m]["ROLEID"] <= 11 ) )
$stars += $matchLineup["PLAYER"][$m]["RATINGSTARS"];
}//fin for ( $m = 0; $m < count($matchLineup['PLAYER']); $m++ )
}// fin if ( $matchID )
//$query = "UPDATE `aseh_estadisticas` SET `nombre_eq`='',`estrellas`=".$stars.", `estadio`=".$arenaDetails["TOTAL"].", `estado`=".$teamDetails["ISBOT"]." WHERE `id_hattrick`=".$teamID[$i].";";
//$query2 = "UPDATE `aseh_estadisticas` SET `nombre_eq`='".$teamDetails["TEAMNAME"]."',`estrellas`=".$stars.",`estado`=1 WHERE `id_hattrick`=".$teamID[$i].";";
//$query = "UPDATE aseh_estadisticas SET nombre_eq='".$teamDetails["TEAMNAME"]."',estrellas=".$stars.", estadio=".$arenaDetails["TOTAL"]." , estado=".$teamDetails["ISBOT"]." WHERE id_hattrick=".$teamID[$i].";";
$query = "UPDATE aseh_estadisticas SET nombre_eq='$teamDetails[TEAMNAME]', estrellas='$stars', estado='$teamDetails[ISBOT]',lignivID='$teamDetails[LEAGUELEVELUNITID]', ligNom='$teamDetails[LEAGUELEVELUNITNAME]', ranking='$teamDetails[TEAMRANK]' WHERE id_hattrick='$teamID[$i]'";
mysql_query($query);
echo '<tr>
<td><div align="center">'.$i.'</div></td>
<td><div align="center">'.$teamID[$i].'</div></td>
<td><div align="center">'.$teamDetails["TEAMNAME"].'</div></td>
<td><div align="center">'.$stars.'</div></td>
<td><div align="center">'.$teamDetails["LEAGUELEVELUNITID"].'</div></td>
<td><div align="center">'.$teamDetails["LEAGUELEVELUNITNAME"].'</div></td>
<td><div align="center">'.$teamDetails["LEAGUELEVEL"].'</div></td>
<td><div align="center">'.$teamDetails["TEAMRANK"].'</div></td>
<td><div align="center">'.$teamDetails["ISBOT"].'</div></td>
<td><div align="center">'.$teamDetails["ARENAID"].'</div></td>
<td><div align="center">'.$teamDetails["ARENANAME"].'</div></td>
<td><div align="center">'.$arenaDetails["TOTAL"].'</div></td>
</tr>';
}// fin for ( $i = 0; $i < count($teamID); $i++ )
echo '</table></div> ';
}// fin if ( $result = mysql_query($query) )
}// fin if ( mysql_select_db($dbname, $link) )
}// fin if $link = mysql_connect($dbhost,$dbuser,$dbpassword)
mysql_close($link);
echo "<br />";
echo "Total equipos: ";
echo count($teamID);
echo "<br />";
?>
<a href="team.php">Volver</a>
</body>
</html>