- Home
- Categorie
- Coding e Sistemistica
- PHP
- Stampare contenuto databse in pdf
-
Ciao Samyor...ben trovato...grazie a te sono riuscito a creare l'area riservata con database, ricordi?
Eravamo rimasti che i risultati li stampavo a video in html o al limite con un link al pdf...ma proprio te mi avevi consigliato di stampare i risultati in pdf tramite libreria fpdf...
mi sono andato a vedere i tuitorial, ma non ci ho capito niente, non so proprio dove inserire lo script della libreria nel mio...
Riposto la pagina privata.php (che hai fatto insieme a me)
[PHP]<?php
// Includo la connessione al database
require('config.php');
// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['login']))
{
header('Location: index.php');
exit;
}
$id=$_SESSION['login'];
$sql="SELECT id, descrizione, stato FROM pratiche WHERE id_user='$id'"; //l'$id lo recuperi dalla sessione
$query = @mysql_query ($sql) or die (mysql_error());
?><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Area privata</title>
</head>
<body>
<table width="972" border="1">
<tr><th><div align="left">Pratica</div></th><th><div align="left">Descrizione</div></th><th><div align="left">Stato</div></th></tr>
<?
while ($array= mysql_fetch_array($query)) // raccogliamo il risultato della query in un array e usciamo fuori tutto il suo contenuto a video
{
echo "<tr><td>".$array['id']."</td><td>".$array['descrizione']."</td><td>".$array['stato']."</td></tr>";
}
?>
</table>
<p> </p>
<p> </p>
<p> </p>
<p><a href="logout.php">Logout</a><br />
</p>
</body>
</html> [/PHP]ah, poi il link di bububu, non esiste....bò!?
-
utilizza fpdf è tutto abbastanza semplice.. se guardi gli esempi all'interno del loro sito riuscirai tranquillamente.. in 1oretta di pratica la prima volta ero riuscito ad ottenere una cosa analoga alla tua.. ora riesco ad ottenere cose piu complesse ed elaborate..
poi se proprio capisci zero.. ti aiuterò con codice..
poi magari spiegami un po meglio cosa devi fare..
-
il link è www.fpdf.org (il bububu = www
-
Ciao Samyor, ho provato ad inserire il codice per richiamare la classe fpdf in alto alla pagina privata.php:
[PHP]<?php
require('fpdf.php'); // questo è il percorso dove risiede la classe fpdf, nn so se ho scritto bene
$pdf_doc=new FPDF();
$pdf_doc->AddPage();
$pdf_doc->SetFont('Arial','B',32);
$pdf_doc->Cell(60,20,'Ciao mondo!');
$pdf_doc->Output();
?>
<?php
// Includo la connessione al database
require('config.php');
// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['login']))
{
header('Location: index.php');
exit;
}
$id=$_SESSION['login'];
$sql="SELECT id, descrizione, stato FROM pratiche WHERE id_user='$id'"; //l'$id lo recuperi dalla sessione
$query = @mysql_query ($sql) or die (mysql_error());
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Area privata</title>
</head>
<body>
<table width="972" border="1">
<tr><th><div align="left">Pratica</div></th><th><div align="left">Descrizione</div></th><th><div align="left">Stato</div></th></tr>
<?
while ($array= mysql_fetch_array($query)) // raccogliamo il risultato della query in un array e usciamo fuori tutto il suo contenuto a video
{
echo "<tr><td>".$array['id']."</td><td>".$array['descrizione']."</td><td>".$array['stato']."</td></tr>";
}
?>
</table>
<p> </p>
<p> </p>
<p> </p>
<p><a href="logout.php">Logout</a><br />
</p>
</body>
</html> [/PHP]il risultato dopo il login è una pagina in pdf con scritto, "ciao mondo"...come faccio a far stampare la tabella del database?
devo inserire nella echo qualcosa?
-
Vedi se così va'
[php]<?php
require('fpdf.php'); // questo è il percorso dove risiede la classe fpdf, nn so se ho scritto bene
$pdf_doc=new FPDF();
$pdf_doc->AddPage();
$pdf_doc->SetFont('Arial','B',32);// Includo la connessione al database
require('config.php');
// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['login']))
{
header('Location: index.php');
exit;
}
$id=$_SESSION['login'];
$sql="SELECT id, descrizione, stato FROM pratiche WHERE id_user='$id'"; //l'$id lo recuperi dalla sessione
$query = @mysql_query ($sql) or die (mysql_error());$pdf->Cell(20,4,'Pratica', '1',0, 'C', 1);
$pdf->Cell(60,4,'Descrizione', '1',0, 'C', 1);
$pdf->Cell(20,4,'Stato', '1',2, 'C', 1);
$pdf->Ln(0);while ($array= mysql_fetch_array($query))
{
$pdf->Cell(20,4,$array['id'], '1',0, 'R', 0);
$pdf->Cell(60,4,$array['descrizione'], '1',0, 'L', 0);
$pdf->Cell(20,4,$array['stato'], '1',2, 'R', 0);
$pdf->Ln(0);
}
$pdf_doc->Output();
?>[/php]
-
Accidenti mi da questo errore:
Fatal error: Call to a member function on a non-object in /membri2/ginolatino/privata.php on line 19
-
Si scusa, ho scritto in automatico $pdf-> invece devi mettere $pdf_doc->
sostituiscili
-
grazie veramente, sei bravissimo!
funziona!
:::certo, l'unica cosa è che mi vengono tutte le scritte grandi, mischiate e le tabelle piccoline, che devo impostare?
-
Cell(20,4.....
Il primo valore è la larghezza della cella il secondo invece è l'altezza
-
ah, grazie sam...
...non riesco a ridimensionare il testo...
...guarda non posso inserire link nel forum, però ci arrivi lo stesso....;)
...questo è il pdf, come mi viene fuori:
-
La riga interessata al font è questa:
$pdf_doc->SetFont('Arial','B',32);
Diminuisci quel 32
-
giusto!!!
aspetta che provo...
accidenti mi sono accorto che facevo delle modifiche al file ma con ws_ftp caricavo un latro file copia, adesso va meglio...
ci sto riuscendo e vaiiii!!!
però non riesco a mandare a capo la descrizione, accidenti...guarda:
-
uhm...non l'ho mai usato, faccio una premessa, ma credo che risolvi utilizzando multicell
[php]$pdf_doc->MultiCell(60,4,$array['descrizione'],'1','J',0)[/php]
-
Mi da questo errore:
Parse error: syntax error, unexpected T_VARIABLE in /membri2/madeleinesirugo/privata.php on line 28
cmq credo ci sia un comando per andare a capo
-
sam, sei scomparso?
in efftti si parla in giro per andare a capèo di multicelle, ma non rtiesco proprio a regolarle...bò?
-
Ooooopppppsss
non sono scomparso...mi era scappato il post, pardon
Premettendo sempre che non l'ho mai usata mi vien da pensare, ragionandoci, che non accetti un multicell() nel mezzo di due cell() contigue.
Le strade che percorrerei a questo punto sono due:- tutt'e tre le colonne diventano multicell (ma già ti dico che secondo me o da errore o in visualizzazzione verrà fuori un porc....ehm, una cosa brutta :D), ma tentar non nuoce
- Gli usi che ho visto del multicell() sono sempre a "pagina piena" pertanto da margine sinistro a margine destro. Potresti mettere le altre due celle come "Intestazione di pratica" e sotto la descrizione (ovvero il multicell()) e non dovrebbe più darti noie. Per evidenziare la separazione dalla pratica successiva magari metti una bella linea spessa o quel che giudicherai idoneo
Attendiamo buone nuove eh