PHP / MySQL打印重复标签

时间:2010-06-06 03:37:41

标签: php mysql pdf fpdf labels

使用FPDF的插件,我使用PHP / MySQL(http://www.fpdf.de/downloads/addons/29/)打印标签。我希望能够让用户选择要打印的标签数量。例如,如果查询输出10条记录,并且用户想要为每条记录打印3个标签,则会将它们全部打印在一组中。 1,1,1,2,2,2,3,3,3 ...等。有什么想法吗?

     <?php
            require_once('auth.php'); 
            require_once('../config.php'); 
            require_once('../connect.php');     

            require('pdf/PDF_Label.php');

            $sql="SELECT $tbl_members.lastname, $tbl_members.firstname, 
    $tbl_members.username, $tbl_items.username, $tbl_items.itemname 
FROM $tbl_members, $tbl_items
WHERE $tbl_members.username = $tbl_items.username";
            $result=mysql_query($sql);

            if(mysql_num_rows($result) == 0){
            echo "Your search criteria does not return any results, please try again.";
            exit();
            }

            $pdf = new PDF_Label("5160");

            $pdf->AddPage();

            // Print labels
            while($rows=mysql_fetch_array($result)){
                $name = $rows['lastname'].', '.$rows['firstname';
                $item= $rows['itemname'];

                $text = sprintf("  * %s *\n  %s\n", $name, $item);
                $pdf->Add_Label($text);
            }

            $pdf->Output('labels.pdf', 'D');
            ?>

1 个答案:

答案 0 :(得分:1)

假设像$copies这样的变量是他们想要的副本数量的整数,我会做出以下修改:

// Print labels
while( $row = mysql_fetch_array( $result ) ){
  // Run Once for Each Result
    $name = $row['lastname'].', '.$row['firstname'];
    $item = $row['itemname'];
    $text = sprintf("  * %s *\n  %s\n", $name, $item);
    if( isset( $copies ) ) {
      // The Copies Variable exists
        for( $i=0 ; $i<$copies ; $i++ ) {
          // Run X times - Once for each Copy
            $pdf->Add_Label($text);
        }
    } else {
      // The Copies Variable does not exist - Assume 1 Copy
        $pdf->Add_Label($text);
    }
}

这应该提供所需的功能。