estrazione dati da DB tramite PHP errore time out

gabriele79

Nuovo Utente
20 Set 2014
3
0
1
Ciao ragazzi, per favore avrei bisogno di un aiuto. Io estraggo gli annunci con il seguente script php e poi salvo la pagina in xml come nomefeed.xml. Il problema è che devo estrarre circa 60.000 annunci (probabilmente aumenteranno a 70-80K), ma riesco ad estrarre solo 40.000 annunci inserendo LIMIT 0,40000. Se provo ad estrarre per esempio 45.000 o tutti gli annunci lo script va in time out. Premetto che ho un VPS (su Siteground) ed ho impostato il tempo di esecuzione script php a 3000, inoltre nel file .htaccess Sitegroup ha inserito il codice che riporto in basso. Lo script va in time out molto ma molto prima di 3000 secondi. Il sito è basato su Wordpress... Cosa dovrei fare? Come posso ottimizzare lo script?

Grazie infinite!


Codice:
<IfModule mod_dtimeout.c>
<Files ~ ".php">
SetEnvIf Request_URI "*.php" DynamicTimeout=3000
</Files>
</IfModule>[CODE]


Lo script PHP è il seguente:


[PHP]<?
set_time_limit(0);

/* dichiariamo alcune importanti variabili per collegarci al database */
$DBhost = "";
$DBuser = "";
$DBpass = "";
$DBName = "";

/* specifichiamo il nome della nostra tabella */
$table = "wp_awpcp_ads";

/* Connettiamoci al database */
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBName") or die("Impossibile connettersi al database");
mysql_query("SET CHARACTER SET utf8");

/* impostiamo la query in base alle esigenze di ricerca, WHERE disabled='0', LIMIT 0,40000 - */
$sqlquery = "SELECT * FROM $table ORDER BY ad_id DESC";
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);

$i = 0;
if ($number < 1) {

	print "<center><p>La ricerca non ha prodotto nessun risultato</p></center>";

}else{
	echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<jobs>\n";
	while ($number > $i) {
    $id = mysql_result($result,$i,'ad_id');
    $title = stripslashes(mysql_result($result,$i,'ad_title'));
	$country = mysql_result($result,$i,'ad_country');
	$state = stripslashes(mysql_result($result,$i,'ad_state'));
	$city = stripslashes(mysql_result($result,$i,'ad_city'));
	$company = stripslashes(mysql_result($result,$i,'ad_contact_name'));
	$description = stripslashes(mysql_result($result,$i,'ad_details'));
	$postdate = date('m/d/Y', strtotime(mysql_result($result,$i,'ad_postdate')));
	$enddate = date('m/d/Y', strtotime(mysql_result($result,$i,'ad_enddate')));

	$description = str_replace('>', '', strip_tags($description));

    print "<job>
<id><![CDATA[ $id ]]></id>
<link><![CDATA[ http://www.miosito.com/?id=$id ]]></link>
<name><![CDATA[ $title ]]></name>
<region><![CDATA[ $country, $state, $city ]]></region>
<company><![CDATA[ $company ]]></company>
<description><![CDATA[ $description ]]></description>
<expire><![CDATA[ $enddate ]]></expire>
<updated><![CDATA[ $postdate ]]></updated>
</job>\n";
    $i++;
  }
}
echo "</jobs>";

// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);
// chiudo la connessione a MySQL
mysql_close();
?>[/PHP]
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non ho mai provato ma protresti testare qualcosa di simile
PHP:
<?php

$sql = new mysqli("localhost", "root", "", "database");
$query = "SELECT * FROM articoli";
$result = $sql->query($query);

$xml = new SimpleXMLElement('<root/>');
while ($row = $result->fetch_assoc()) {
    $job = $xml->addChild("job");
    foreach ($row as $key => $value) {
        $job->addChild($key, $value);
    }
}
print $xml->asXML();
 
Discussioni simili
Autore Titolo Forum Risposte Data
C [PHP][MY SQL] - Estrazione dati database tramite form PHP 8
E Progressbar estrazione dati da tabella mySQL Ajax 9
L Estrazione dati php Database 6
L Estrazione dati casuali non doppioni MySQL 1
D Chiave unica in estrazione dati da array php PHP 0
ronny1710 Estrazione Dati Tessera Sanitaria .NET Framework 1
creatorweb [PHP] estrazione ciclica dati con 2 dati alla volta PHP 2
Gigi87 [PHP] Estrazione dati da forum o da social network PHP 1
L estrazione dati da mysql in php e salvataggio in cartella del server PHP 51
E [PHP] estrazione dati in modo non continuativo PHP 1
C Estrazione Dati da Pagine Gialle PHP 0
A Estrazione dati da tabella sql MySQL 27
T Codice per estrazione dati da db PHP 4
L estrazione dati per login PHP 0
W Estrazione dati da DB PHP 20
L Estrazione dati per settimana. PHP 13
L estrazione dati e immagini in contemporanea PHP 4
M estrazione dati casuali da database Database 0
B Estrazione dati utente loggato MySQL 1
W Estrazione dati DB da lista MySQL 1
M Connessione Database ed estrazione dati Javascript 6
A [risolto] Istruzione per estrazione di dati casuali dal db PHP 25
B Estrazione dati Classic ASP 3
U Estrazione dati da un db con un menu selezione in cascata PHP 6
Sargon estrazione dati PHP 17
A Estrazione dati da file.html PHP 8
G estrazione dati da xml ed inserimento in db PHP 0
P Menu a discesa con estrazione dati da datbase mysql PHP 21
M problema con estrazione dati da più tabelle MySQL 1
A problema: estrazione dati da query mysql e assegnazione ad una variabile PHP 2
L Estrazione dati PHP 32
M caratteri speciali ed estrazione dati Database 4
L Estrazione dati da 2 tabelle non relazionate Classic ASP 26
R Aiuto estrazione dati Database 0
G estrazione dati da più record in un solo nuovo campo Database 0
E Difficile estrazione dati da tabella PHP 3
L Estrazione valori max su più campi MySQL 4
M [PHP] Estrazione random con nomi presi dal db PHP 22
gandalf1959 Estrazione e visualizzazione del simbolo dell'euro php/mysqli PHP 0
F Estrazione Email di persone selezionate e attive / facebook + invio di massa! Annunci servizi di Social Media Marketing 0
V Estrazione di una singola banda da file multi banda (RGB) con Python Programmazione 0
O [PHP] problema estrazione immagine da db PHP 12
V [PHP] Estrazione con SQL PHP 1
M [MS Access] Estrazione record multipli MS Access 1
S [PHP] estrazione dal DB complicata PHP 7
asevenx [Javascript] Estrazione dal database di un valore in base ad una scelta Javascript 7
S Php e mysql, estrazione da una tabella e inserimento in un'altra tabella PHP 14
P Probelma estrazione stringa PHP 5
L Estrazione Articoli Random da Tabella senza doppioni PHP 1
gandalf1959 Estrazione di un singolo dato da una ricerca mysql PHP 1

Discussioni simili