Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2015, 13:50
Avatar de Maganius
Maganius
 
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Foreach y datos externos

Wenas gente,,,

Tengo un programa en el cual se pueden agregar jugadores a una base de datos, en sí no tiene errores de funcionamiento sino que el problema se basa en la gran demora de la execución del mismo.

Mi script sigue este camino.

form -> web externa -> servidor bd

Para catpurar los datos de la web externa utilizo file_get_contents para despues parsear los datos capturados y los devuelvo en forma de array.

Lo que hace el script es ir a la web externa verificar que el jugador existe y en tal caso lo envia al servidor para guardarlo, pero este proceso demora mucho si se escriben varios jugadores y se envian al mismo tiempo.

Como máximo puedo escribir 30 jugadores (linea por linea en un textarea) si escribo más ya la página me da error de timeout.

La ídea es que se puedan escribir 100 o más jugadores sin tener ningun tipo de problema.

Les dejo la parte del código la cual se encarga de verificar y agregar a la base de datos

Código PHP:
Ver original
  1. $list = explode("\n",$jugadores);
  2.         foreach($list as $l){
  3.             $l = trim($l);
  4.             if($this->checkMaker($l)==0) //Verifica que el jugador no exista en la base de datos
  5.             {
  6.                 $t = new jugador();
  7.                 //Verificar que el jugador existe
  8.                 if($t->characterInfo($this->fixName($l))!="no" && (!empty($l)))
  9.                 {                
  10.                     $select = $this->db->prepare("INSERT INTO jugadores (nombre) VALUES (?)");
  11.                     $select->bindValue(1,$l);
  12.                     if($select->execute())
  13.                         $agregados[] = $l;
  14.                     else
  15.                         $no_agregados[] = $l;
  16.                 }else
  17.                     $no_agregados[] = $l;
  18.             }else
  19.             {
  20.                 $ya_existen[] = $l;
  21.             }
  22.         }

Que me aconsejan?