สำนักวิทยบริการและเทคโนโลยีสารสนเทศ

Office of Academic Resources and Information Technology

เขียน PHP ออกรายงานเป็น pdf : 2

วันนี้ ขอต่อด้วยการเขียน php เพื่อออกรายงานเป็น pdf 
จาก code 
1. ดึงข้อมูลจากฐานข้อมูล
2.แสดงข้อมูลสถิติ การสร้างรายชื่อ ตามปีที่เลือกออกรายงาน
 
<? 
//require('thaipdfclass.php');
require('fpdf.php');
include("../include/class.mysqldb.php");
include("../include/config.inc.php");

function utf8_to_tis620($string) {
  $str = $string;
  $res = "";
  for ($i = 1; $i < strlen($str); $i++) {
    if (ord($str[$i]) == 224) {
      $unicode = ord($str[$i+2]) & 0x3F;
      $unicode |= (ord($str[$i+1]) & 0x3F) << 6;
      $unicode |= (ord($str[$i]) & 0x0F) << 12;
      $res .= chr($unicode-0x0E00+0xA0);
      $i += 2;
    } else {
      $res .= $str[$i];
    }
  } 
  return $res;
}
function thaidate($str) {
    if($str == "0000-00-00") {
        return "ไม่กำหนด";
    }
    $y = substr($str, 0, 4) + 543;
    $m = substr($str, 6, 2) + 0;
    $d = substr($str, 8, 2);
            
                
    $month = array("ม.ค.", "ก.พ.", "มี.ค", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค.");
    return $d . " " . $month[$m-1] . " " . $y;
}


$footer =  '';
$header = 'ตารางแสดงรายชื่อกลุ่ม';
$pdf=new FPDF();//เรียกสีfill
$pdf->SetThaiFont();

$pdf->AddPage();
$pdf->SetFont('FreesiaUPC','B',16); 
$pdf->SetTextColor(0,0,0);
foreach($_REQUEST as $key => $value) {
    $$key = $value;
    // $pdf->Ln(10);
    // $pdf->MultiCell(0,7,$key .' => ' . $value,0,'J');
}


//---------------------------------------------------------- ดึงข้อมูลมาจากฐานข้อมูล -----------------------------------

$sql= "SELECT COUNT( account.username) AS numuser 
FROM account
        Inner Join radreply ON account.username = radreply.UserName
        where radreply.Attribute = 'WISPr-Session-Terminate-Time' and radreply.Value LIKE'".$_REQUEST['find']."%'  
        order by radreply.Value ASC";
$i = 1;   // กำหนดค่าตัวแปร เพื่อใช้ในการวนลูป

//............................... พิมพ์ข้อมูลทุกปีหาก ไม่เลือก .............................................................
if($_REQUEST['find']==""){   // เงื่อไข ถ้าตัวแปร find ที่รับค่ามาเป็นค่าว่าง ให้.....
$_REQUEST['find']="2010-".date("Y") ; //กำนดค่าตัวแปร find  มีค่าเท่ากับปี 2010 ถึง ปีปัจจุบัน
}

$result=mysql_query($sql);
while($users = mysql_fetch_object($result)) { // วนลูปตามจำนวนข้อมูลที่มีในฐานข้อมูลตาราง radacct

    if($i % 33 == 1) { // กำหนด ตัวหาร ด้วยจำนวนบรรทัดต่อหนึ่งหน้า คือ หน้าละ 33 บรรทัด
        if($i != 1) { $pdf->AddPage(); }
        $pdf->Image('logo.png',3,5,30);  // โลโก
        $pdf->Image('geo_red.png',30,2,170); // รูปตึก
        $pdf->Image('RUTS.png',10,280,191);  // รูปแถบท้ายกระดาษ
        $pdf->Ln(18);
        $pdf->SetFont('FreesiaUPC','B',16);
        $pdf->Cell(0,0,iconv('UTF-8','CP874','รายงานบัญชีรายชื่อที่หมดอายุการใช้งานระบบเครือข่ายไร้สาย'),0,0,'C');
        $pdf->Ln(18);
        //.....................................................................................................................................
               
        $pdf->SetFont('FreesiaUPC','',12);
        $pdf->Cell(0,0,iconv('UTF-8','CP874','ตารางแสดงจำนวนบัญชีรายชื่อที่หมดอายุการใช้งานระบบเครือข่ายไร้สายเครือข่ายไร้สาย :  ทั้งหมด  ประจำปี ค.ศ.  '.$_REQUEST['find']) ,0,0,'L');
        $pdf->Ln(4);
        $pdf->SetFont('FreesiaUPC','B',12); 
        $pdf->SetFillColor(220, 220, 220);//สีFiL
        $pdf->Cell(12,7,iconv('UTF-8','CP874','ลำดับที่'),1,0,'C','true');
        $pdf->Cell(45,7,iconv('UTF-8','CP874','ปีที่สร้างบัญชีรายชื่อ'),1,0,'C','true');
        $pdf->Cell(60,7,iconv('UTF-8','CP874','จำนวนบัญชีผู้ใช้งาน'),1,0,'C','true');
        $pdf->Ln(7);    
        
    }   // row of data Table
    $pdf->SetFont('FreesiaUPC','',12); 
    $pdf->Cell(12,7,$i++ . '.',1,0,'C');
    $pdf->Cell(45,7,iconv('UTF-8','CP874',$_REQUEST['find']),1,0,'C');
    $pdf->Cell(60,7,iconv('UTF-8','CP874',$users->numuser),1,0,'C');
    
    $pdf->Ln(7); 

     //(ทำการเพิ่มรอบทีละ1)
}

// ท้ายตาราง
    
$pdf->Output();  // พิมพ์
?>