Salve a tutti,
gestisco un sito open source di e-commerce ed ultimamente ho avuto la necessita di esportare in csv tutto il mio catalogo e-commerce e di appoggiarlo in una cartella del mio spazio web "www.miosito.com/export/catalogo.csv"
lo script che ho trovato bello pronto su internet esegue proprio quello che mi serve ed è il seguente:
<?php
$host = '127.0.0.1'; // <-- inserisci qui l'indirizo ip di MySql
$user = '*****'; // <-- nome utente del database
$pass = '*****'; // <-- password dell'utente
$db = '******'; // il database desiderato
$table = '******'; // la tabella da esportare in .csv
$file = 'catalogo'; // il nome del file csv da generare
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error()); /* usa i dati forniti per connetterti a MySql, se impossibile interrompi */
mysql_select_db($db) or die("Can not connect."); // seleziona il db desiderato oppure interrompi
$result = mysql_query("SHOW COLUMNS FROM ".$table.""); // query sql per visualizzare la tabella
$i = 0; // settiamo un contatore i e fecciamolo iniziare da zero
if (mysql_num_rows($result) > 0) { // se il numero di righe della tabella e' maggiore di zero
while ($row = mysql_fetch_assoc($result)) { // fin quando
$csv_output .= $row['Field']."; ";
$i++;
}
}
$csv_output .= "\n"; // e vai a capo
$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) { // settiamo un altro indice j e aumentiamolo di 1 alla volta finche' questo e' minore di i
$csv_output .= $rowr[$j]."; "; // scrivi la riga
}
$csv_output .= "\n"; // e vai a capo
}
$filename = $file."_".date("d-m-Y_H-i",time()); // il nome del file sara' composto da quello scelto all'inizio e la data ed ora oggi
/* setta le specifiche del file csv */
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output; // il file e' pronto e puo' essere scaricato
exit;
?>
il mio problema è che se schedulo con il cron (via directadmin) lo script non mi esporta niente .....
comando cron:
44 00 * * * /usr/bin/wget http://www.miosito.com/export/catalogo.php
se invece lancio a mano via browser il link ottengo il CSV.
Devo modificare in qualche modo il mio script php sopra?
Oppure sbaglio con il cron?
grazie per un vostro suggerimento.