[PHP] Esportare in word

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
18
Buongiorno, come da titolo vorrei, se fosse possibile, esportare in un documento word i dati di una tabella mysql, li sto già esportando in excel e modificando quel codice ho provato ad esportarli ma non ci siamo, allego codice utilizzato
PHP:
<?php
                // connessione al database
                include('../views/Connessione.php');

 $table = 'tblmaggioreuguale4000Word';
// la tabella da esportare in .csv
 
$file = 'ComunicatoStampa';
// il nome del file csv da generare
 
$link = mysql_connect($host, $user, $password) or die("Can not connect." . mysql_error());

mysql_select_db($database) or die("Can not connect.");
 
$result = mysql_query("SHOW COLUMNS FROM ".$table."");
// query sql per visualizzare la tabella
 
$i = 0;
// settiamo un contatore i e facciamolo 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 id, prodotto FROM ".$table."
          WHERE (posizione like 'Clas.%' )
        AND  ( peso_X_congiunturale  >= 4000 OR peso_X_congiunturale <= -4000 ) ORDER BY id ASC");
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/msword");
header("Content-disposition: csv" . date("Y-m-d") . ".doc");
header( "Content-disposition: filename=".$filename.".doc");
print $csv_output; // il file e' pronto e puo' essere scaricato
exit;
?>
e mi da questi erori
Notice: Undefined variable: csv_output in C:\xampp\htdocs\controlloprezzi\views\EsportaComunicatoStampaWord.php on line 37
Notice
: Undefined offset: 2 in C:\xampp\htdocs\controlloprezzi\views\EsportaComunicatoStampaWord.php on line 48
Notice
: Undefined offset: 3 in C:\xampp\htdocs\controlloprezzi\views\EsportaComunicatoStampaWord.php on line 48
Notice
: Undefined offset: 4 in C:\xampp\htdocs\controlloprezzi\views\EsportaComunicatoStampaWord.php on line 48
PHP:
linea 37= $csv_output .= $row['Field']."; ";
linea 48= $csv_output .= $rowr[$j]."; "; // scrivi la riga
se invece nella query
PHP:
$values = mysql_query("SELECT id, prodotto FROM ".$table."
          WHERE (posizione like 'Clas.%' )
        AND  ( peso_X_congiunturale  >= 4000 OR peso_X_congiunturale <= -4000 ) ORDER BY id ASC");

se nella query al posto di "id, prodotto" metto asterisco "*" mi esporta il file .doc, ma nel documento c'è questo errore:
<br />
<b>Notice</b>: Undefined variable: csv_output in <b>C:\xampp\htdocs\controlloprezzi\views\EsportaComunicatoStampaWord.php</b> on line <b>37</b><br />

Qualche suggerimento?
Grazie
Max61
 
l'errore alla linea 37 si elimina inizializzando la variabile
modifica così,
PHP:
$i = 0;
// settiamo un contatore i e facciamolo iniziare da zero
$csv_output = "";
// inizializziamo la stringa

l'errore alla linea 48 dipende dal contatore $i che conta le colonne presenti in tabella,
ma non conta le colonne estratte con la successiva select
modifica così,
PHP:
while ($rowr = mysql_fetch_row($values)) {
$x = count($rowr)
for ($j=0;$j<$x;$j++) { // settiamo un altro indice j e aumentiamolo di 1 alla volta finche' questo e' minore di i
 
  • Like
Reactions: Max61

Discussioni simili