fpdf

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Ciao Ragazzi,
ho visto che la libreria "fpdf" mi potrebbe tornare utile per salvare in un file pdf quello che mi viene fuori da una query.

Ho il sorgente:
PHP:
<html>
<head>
<title> Visualizzazione l'aggregazione secondo id_dipendente </title>
</head>
<body>

<?php
	$connessione = mysql_connect("localhost","root","root") or die ("ATTENZIONE: Errore di connessione al database\n");	
	$selezione_db = mysql_select_db("ProgDataWarehouse", $connessione) or die ("ATTENZIONE: Errore nella selezione del database\n");

//Query che seleziona id_dipendente, nome, cognome e mostra il risultato della somma in corrispondenza dell'id_dipendente che è presente nella tabella dipendenti, raggruppa tutti gli ordini fatti da un dipendente e ne somma la quantità
	$query = "SELECT o.id_dipendente, d.nome, d.cognome, SUM(quantita) as totale \n"
    . "FROM ordini o, dipendenti d\n"
    . "WHERE o.id_dipendente = d.id_dipendente\n"
    . "GROUP BY o.id_dipendente LIMIT 0, 30 ";
    	
	$result = mysql_query($query);

	$numrows = mysql_num_rows($result); 
         
        echo "<big>Sono stati letti <span style=\"color:red\">{$numrows}</span> ordini per dipendente</big>"; 
        echo "<h2><big> Dati tabella Ordini aggregati per dipendente </big></h2>"; 
     



while ($row = mysql_fetch_assoc($result)) { 
                
                echo "ID dipendente: <strong>{$row['id_dipendente']}</strong><br>"; 
                
                
                $subSql   = "SELECT * FROM dipendenti WHERE id_dipendente = {$row['id_dipendente']}"; 
                $subQuery = mysql_query($subSql, $connessione); 
                $subRow   = mysql_fetch_assoc($subQuery); 
                 
                echo "Nome dipendente: <strong>{$subRow['nome']}</strong><br>"; 
                echo "Cognome dipendente: <strong>{$subRow['cognome']}</strong><br>";                
                
                echo "Quantita': <strong>{$row['totale']}</strong><br>"; 
                 
                 
                 
                echo "<br><br>===========================<br><br>"; 




            } 


?>
</body>
</html>

che mi stampa a video l'aggregazione tra gli ordini in base al dipendente che ha effettuato l'ordine e mi salva la quantità degli ordini effettuati per ogni dipendente.

Se io volessi stampare su un file pdf tale contenuto, potrei utilizzare fpdf.
Ho scaricato fpdf scaricato da internet ed inserito in "htdocs" di MAMP.
Per stampare su pdf potrei utilizzare quanto segue:

Codice:
require('fpdf.php'); 
$pdf =new FPDF();

$pdf -> AddPage(); 
$pdf -> SetFont('Arial', 'B', 16 ); 
$pdf -> Cell(40, 10, $row['id_ordine'] ); 
$pdf -> Cell(40, 10, $subRow['nome'] ); 
$pdf -> Cell(40, 10, $subRow['cognome'] ); 
$pdf -> Cell(40, 10, $row['totale'] ); 

$pdf -> Output('prova2.pdf');

Ho provato ad inserire nel while tutto il codice eccetto:
Codice:
require('fpdf.php'); 
$pdf =new FPDF();
che l'ho messo prima del ciclo.

Mi crea come è giusto che sia il file .pdf denominato prova2, però mi crea più pagine pari alla quantità di reali aggregazioni create. Mi fa visualizzare la prima e poi Adobe Reader si blocca.

Come potrei risolvere?
 
Grazie per la risposta nefyt, Era sorto anche a me il dubbio e ho già provato a metterlo fuori. Non ricordo di preciso l'output e non posso provare in quanto sono in fila al semaforo, se non erro mi creava la pagina bianca o mi scriveva nel file solo la prima riga. Più tardi proverò il tuo consiglio. Necessita installazione?
 
Grazie per la risposta nefyt, Era sorto anche a me il dubbio e ho già provato a metterlo fuori. Non ricordo di preciso l'output e non posso provare in quanto sono in fila al semaforo, se non erro mi creava la pagina bianca o mi scriveva nel file solo la prima riga. Più tardi proverò il tuo consiglio. Necessita installazione?
Necessita solo dell'upload sul sito web, poi basta studiarsi la documentazione e capisci subito come funziona (2-3min :ilpirata:)
 
Scusa se risp senza aver provato ancora ma per fare l'upload sul sever intendi copiare i file in htdocs o si fa qualche altra procedura con MAMP?
 
Quindi tutto nella directory htdocs o nella directory MAMP?
Cosa stai utilizzando? Xampp? Comunque si uppa tutto il contenuto (la singola cartella chiamata dompdf) in htdocs poi
segui la documentazione e guardati l'eventuali configurazioni che vuoi e le basi
 
ragazzi, ho provato ma idem. Sicuramente sbaglio qualcosa. Ho cercato online ma solo parole parole parole. Potete gentilmente spiegarmi dalla A alla Z come installare queste librerie su MAMP e come utilizzarla e integrarla nel file visto che ho provato di tutto, tradotto tutti i siti di download e guida sia di "fpdf" e sia di "dompdf".

Grazie anticipatamente
 
Nessuno conosce le funzioni di report. Strano. Io continuo a cercare e provare ma nulla. Qualcuno mi aiuti.:hammer:
 
Penso di aver fuso il pc ma ho sistemato qualcosa ho creato un layout però se io dovessi stampare esempio 6 elementi, lui mi crea 6 pagine pdf in un unico file.
Davvero assurdo.
Ho letto in giro che $pdf -> AddPage(); si dovrebbe eliminare, ma se lo elimino non mi va il codice.
Vi posto il codice:

PHP:
<html>
<head>
<title> Visualizzazione e stampa su file pdf l'aggregazione secondo id_dipendente </title>
</head>
<body>


<?php
	$connessione = mysql_connect("localhost","root","root") or die ("ATTENZIONE: Errore di connessione al server\n");	
	$selezione_db = mysql_select_db("ProgDataWarehouse", $connessione) or die ("ATTENZIONE: Errore nella selezione del database\n");

//Query che seleziona id_dipendente, nome, cognome e mostra il risultato della somma in corrispondenza dell'id_dipendente che è presente nella tabella dipendenti, raggruppa tutti gli ordini fatti da un dipendente e ne somma la quantità
	$query = "SELECT o.id_dipendente, d.nome, d.cognome, SUM(quantita) as totale \n"
    . "FROM ordini o, dipendenti d\n"
    . "WHERE o.id_dipendente = d.id_dipendente\n"
    . "GROUP BY o.id_dipendente LIMIT 0, 30 ";
    	
	$result = mysql_query($query);

	$numrows = mysql_num_rows($result); 
         
        echo "<big>Sono stati letti <span style=\"color:red\">{$numrows}</span> ordini per dipendente</big>"; 
        echo "<h2><big> Dati tabella Ordini aggregati per dipendente </big></h2>"; 

     
    //include('classi/fpdf_mctable.php'); 

require('fpdf.php'); 
$pdf = new FPDF(); //genero l'oggetto pdf
$pdf -> Open();
$pdf = new FPDF('L','mm','A4'); 

while ($row = mysql_fetch_assoc($result)) { 
                
                echo "ID dipendente: <strong>{$row['id_dipendente']}</strong><br>"; 
                
                
                $subSql   = "SELECT * FROM dipendenti WHERE id_dipendente = {$row['id_dipendente']}"; 
                $subQuery = mysql_query($subSql, $connessione); 
                $subRow   = mysql_fetch_assoc($subQuery); 
                 
                echo "Nome dipendente: <strong>{$subRow['nome']}</strong><br>"; 
                echo "Cognome dipendente: <strong>{$subRow['cognome']}</strong><br>";                
                
                echo "Quantita': <strong>{$row['totale']}</strong><br>"; 
                 
                 
                 
                echo "<br><br>===========================<br><br>"; 

$pdf -> AddPage();
//$pdf -> SetAutoPageBreak();

$pdf -> SetFont('Arial', 'B', 10);
$pdf -> Cell(50, 10, 'id_dipendente',1,'',C);
$pdf -> Cell(50, 10, 'nome dipendente',1,'',C);
$pdf -> Cell(50, 10, 'cognome dipendente',1,'',C);
$pdf -> Cell(50, 10, 'totale acquistato',1,1,C);

$pdf -> Cell(50, 10, $row['id_dipendente'],1,'',C);
$pdf -> Cell(50, 10, $subRow['nome'],1,'',C); 
$pdf -> Cell(50, 10, $subRow['cognome'],1,'',C); 
$pdf -> Cell(50, 10, $row['totale'],1,'',C);


            } 
           
$pdf -> Output('aggregazione_ordini.pdf');

?>
</body>
</html>

Come risolvere?
Le ho provate tutte, credetemi
 

Discussioni simili