Visualizzazione dei risultati da 1 a 7 su 7

Discussione: php e pdf

  1. #1

    php e pdf

    allora io ho questo script
    codice:
    <?php
    define('FPDF_FONTPATH','font/');
    require('fpdf.php');
    
    //Connect to your database
    //include("config.inc.php");
    //include("connect.inc.php");
    
    $db_host = "localhost";
    $db_user = "***";
    $db_password = "***";
    $db_name = "***";
    
    $db   =   mysql_connect($db_host,   $db_user,   $db_password);
    if   ($db   ==   FALSE)
    die   ("Errore   nella   connessione.   Verificare   i   parametri   nel   file   config.inc.php" . mysql_error( ) );
    mysql_select_db($db_name,   $db)
    or   die   ("Errore   nella   selezione   del   database.   Verificare   i   parametri   nel   file   config.inc.php" . mysql_error( ) );
    
    //Create new pdf file
    $pdf=new FPDF();
    
    //Open file
    $pdf->Open();
    
    //Disable automatic page break
    $pdf->SetAutoPageBreak(false);
    
    //Add first page
    $pdf->AddPage();
    
    //set initial y axis position per page
    $y_axis_initial = 25;
    
    //print column titles for the actual page
    $pdf->SetFillColor(232,232,232);
    $pdf->SetFont('Arial','B',12);
    $pdf->SetY($y_axis_initial);
    $pdf->SetX(25);
    $pdf->Cell(30,6,'titolo',1,0,'L',1);
    $pdf->Cell(30,6,'regione',1,0,'L',1);
    $pdf->Cell(30,6,'tipopiatto',1,0,'L',1);
    $pdf->Cell(30,6,'persone',1,0,'L',1);
    $pdf->Cell(30,6,'ingredienti',1,0,'L',1);
    $pdf->Cell(30,6,'preparazione',1,0,'L',1);
    $pdf->Cell(30,6,'note',1,0,'L',1);
    $pdf->Cell(30,6,'difficolta',1,0,'L',1);
    
    $y_axis = $y_axis + $row_height;
    
    //Select the Products you want to show in your PDF file
    $result=mysql_query("SELECT   titolo,   regione, tipopiatto, persone,   ingredienti,  preparazione, note, difficolta   FROM   ricette WHERE   id='$id'");
    
    //initialize counter
    $i = 0;
    
    //Set maximum rows per page
    $max = 25;
    
    //Set Row Height
    $row_height = 6;
    
    while($row = mysql_fetch_array($result))
    {
    	//If the current row is the last one, create new page and print column title
    	if ($i == $max)
    	{
    		$pdf->AddPage();
    
    		//print column titles for the current page
    		$pdf->SetY($y_axis_initial);
    		$pdf->SetX(25);
    		$pdf->Cell(30,6,'titolo',1,0,'L',1);
    		$pdf->Cell(30,6,'regione',1,0,'L',1);
    		$pdf->Cell(30,6,'tipopiatto',1,0,'L',1);
    		$pdf->Cell(30,6,'persone',1,0,'L',1);
    		$pdf->Cell(30,6,'ingredienti',1,0,'L',1);
    		$pdf->Cell(30,6,'preparazione',1,0,'L',1);
    		$pdf->Cell(30,6,'note',1,0,'L',1);
    		$pdf->Cell(30,6,'difficolta',1,0,'L',1);
    
    		
    		//Go to next row
    		$y_axis = $y_axis + $row_height;
    		
    		//Set $i variable to 0 (first row)
    		$i = 0;
    	}
    
    	$titolo = $row['titolo'];
    	$regione = $row['regione'];
    	$tipopiatto = $row['tipopiatto'];
    	$persone = $row['persone'];
    	$ingredienti = $row['ingredienti'];
    	$preparazione = $row['preparazione'];
    	$note = $row['note'];
    	$difficolta = $row['difficolta'];
    	
    
    	$pdf->SetY($y_axis);
    	$pdf->SetX(25);
    	$pdf->Cell(30,6,$titolo,1,0,'L',1);
    	$pdf->Cell(30,6,$regione,1,0,'L',1);
    	$pdf->Cell(30,6,$tipopiatto,1,0,'L',1);
    	$pdf->Cell(30,6,$persone,1,0,'L',1);
    	$pdf->Cell(30,6,$ingredienti,1,0,'L',1);
    	$pdf->Cell(30,6,$preparazione,1,0,'L',1);
    	$pdf->Cell(30,6,$note,1,0,'L',1);
    	$pdf->Cell(30,6,$difficolta,1,0,'L',1);
    	
    	//Go to next row
    	$y_axis = $y_axis + $row_height;
    	$i = $i + 1;
    }
    
    mysql_close($link);
    
    //Create file
    $pdf->Output();
    ?>
    che mi crea 2 problemi.
    Il primo e' che se decommento gli include mi ritorna questo messaggio d'errore:

    FPDF error: Some data has already been output, can't send PDF file

    che risolvo togliendo gli include e copiando il codice nello script, pero' vorrei evitare questa soluzione se possibile

    Il secondo problema è che io vorrei associare questo script ad un bottone premendo il quale mi venga generato il pdf di una query tipo questa

    $result=mysql_query("SELECT titolo, regione, tipopiatto, persone, ingredienti, preparazione, note, difficolta FROM ricette WHERE id='$id'");

    in questo caso l'id io lo conosco avendo gia' visualizzato a video i dati (nella barra dell'indirizzo vedo http://www.altervista.org/view.php?id=16) ma come lo passo alla query in modo che mi venga stampato quel record specifico?

  2. #2
    il primo problema è dato dal fatto che i file che includi generano output, mentre non lo dovrebbero fare se vuoi inviare un pdf

    ciao

  3. #3
    non capisco se li includo cosi'

    include("config.inc.php");
    include("connect.inc.php");

    da' errore, se elimino gli include e dichiaro gli stessi files cosi

    db_host = "localhost";
    $db_user = "***";
    $db_password = "***";
    $db_name = "***";

    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php" . mysql_error( ) );
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php" . mysql_error( ) );

    funziona, il pdf viene generato, come mai non generano comunque un output?

  4. #4
    in php una riga vuota o uno spazio sono output html

    _<?php se al posto di _ c'è uno spazio all'inizio del file è output come lo è una riga vuota prima o dopo i tag di apertura/chiusura

    ciao

  5. #5
    capisco, ora controllo meglio. per il secondo problema come memorizzo l'id in una sessione?

  6. #6

  7. #7
    ho provato anche a fare questo nel file view.php ho settato la variabile $var=$id
    codice:
    $query   =   "SELECT   titolo,   regione, tipopiatto, persone,   ingredienti,  preparazione, note, difficolta   FROM   ricette WHERE   id='$id'";
    $result   =   mysql_query($query,   $db);
    $row   =   mysql_fetch_array($result);
    $var.=$id;
    e nel file che dovrebbe creare il pdf ho provato a fare questo
    codice:
    $result=mysql_query("SELECT   id, titolo,   regione, tipopiatto, persone,   ingredienti,  preparazione, note, difficolta   FROM   ricette WHERE   id='$var'");
    ma non funziona
    help please

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.