2017-04-10 2 views
0

Ich baue eine Website, die Daten von einer anderen Website kratzt, speichert es in einer Datenbank und zeigt es in Form einer Tabelle. Alles funktioniert gut, solange die Anzahl der Zeilen geringer ist (etwa 100), aber wenn der Datensatz größer wird, sagen wir 300 Zeilen oder mehr, werden die Daten in der Datenbank gespeichert (phpmyadmin), aber nichts wird auf dem Bildschirm angezeigt und die Seite bleibt erhalten Wird geladen. Im Folgenden ist ein Abschnitt des PHP-Skript bei mir läuft:PHP-Skript hängt für einen großen Datensatz

<?php 

// configuration 
require("../includes/helpers.php"); 

     // initializing current page and number of pages 
     $page = 0; 
     $pages = 1; 

     // scrape data from each page 
     while($pages--) 
     { 
      // next page 
      $page++; 

      // scrape data from shiksha.com 
      $string = @file_get_contents("http://www.shiksha.com/b-tech/colleges/b-tech-colleges-".urlencode($_POST["city"])."-{$page}"); 

      if($string === false) 
       apologize("Please enter a valid city name"); 

      if($page === 1) 
      { 
       // counting total number of pages 
       preg_match_all('/class=" linkpagination">/',$string,$result); 
       $pages = sizeof($result[0]); 
      } 

      // passing the string for scraping data and storing in database 
      get_college_info($string,$page); 

      // delay for 2s 
      sleep(2); 
     } 


     // querying the infrastructure table for facilities of all colleges 
     $infra = query("SELECT college_id,facilities FROM infrastructure "); 

     // preparing query and selecting data from table college_info 
     $result = query("SELECT * FROM college_info"); 

     // render(output) results 
     render("result.php",["title" => "result","infra" => $infra,"result" => $result]); 
    } 
}?> 

interessant, wenn ich bereits die Daten in meinem db gespeichert haben und ich es einfach abrufen und drucken, funktioniert alles einwandfrei und alle Daten, es jedoch große wird, wird gedruckt. Ich habe keine Ahnung, was das Problem ist. PS: Ich habe bereits versucht, set_time_limit().

Antwort

0

Sie erstellen eine Endlosschleife. Um das Problem zu beheben, ändern Sie die Kriterien für Ihre while Schleife in den folgenden.

while($page<$pages) 
{ 
    //your same code here 
} 
+0

Ich glaube nicht, dass das das Problem ist, jedenfalls habe ich es versucht und es funktioniert immer noch nicht. @ Benutzer3299379 –

Verwandte Themen