Search code examples
phpmysqlfpdf

FPDF Display Data From Database Outside The Table


I'm re-posting my question so that it'll gain more audience. Seems like the others doesn't see it since I posted it last week.

I'm displaying a data outside and inside the table. When I tried to call the data on inside the table, it works perfectly fine but whenever I call it outside, it suddenly doesn't show. This part right here...

$pdf->MultiCell(194,4,"STORM SURGE INFORMATION",0,'C', false);
$pdf->Cell(191,4,"STORM SURGE: WARNING # ",0,0,'C');
$pdf->Cell(-136,4,$fetch['warning'],0,1,'C');

$pdf->Cell(172,4,"FOR: TYPHOON ",0,0,'C');
$pdf->Cell(-119,4,$fetch['typhoon'],0,1,'C');

$pdf->Cell(175,4,"ISSUED AT ",0,0,'C');
$pdf->Cell(-135,4,$fetch['date'],0,1,'C');

My PDF currently look like this.

enter image description here

Can somebody help me figure out what is wrong or missing with my codes?

<?php

require("con.php");

$sql="SELECT * FROM table ORDER BY ssh REGEXP '^[^A-Za-z0-9]' ASC, ssh DESC";

$records=mysql_query($sql);
$fetch = $records[0];

require("library/fpdf.php");

class PDF extends FPDF{
  function Header(){
  }
  function Footer(){
  }
}

$pdf = new PDF('p', 'mm', 'Legal');
$title = 'Storm Surge Warning';
$pdf->SetTitle($title);
$pdf->AliasNbPages('{pages}');
$pdf->SetAutoPageBreak(true,40);

$pdf->AddPage();
$pdf->Ln();

$pdf->SetFont('Arial', 'B', 10);

$pdf->MultiCell(194,4,"STORM SURGE INFORMATION",0,'C', false);
$pdf->Cell(191,4,"STORM SURGE: WARNING # ",0,0,'C');
$pdf->Cell(-136,4,$fetch['warning'],0,1,'C');

$pdf->Cell(172,4,"FOR: TYPHOON ",0,0,'C');
$pdf->Cell(-119,4,$fetch['typhoon'],0,1,'C');

$pdf->Cell(175,4,"ISSUED AT ",0,0,'C');
$pdf->Cell(-135,4,$fetch['date'],0,1,'C');

$pdf->Ln(1);

$pdf->SetBorders(array('LT', 'LT', 'LT', 'LT', 'TLR'));
$pdf->SetWidths(array(25, 27, 35, 54, 53));
$pdf->SetAligns(array('C', 'C', 'C', 'L', 'L'));

$pdf->SetFont('Arial', 'B', 10);

$pdf->Row(array("SS Height",
            "Provinces",
            "Low Lying Coastal Areas in the Municipalities of:",
            "IMPACTS",
            "ADVICE/Actions to Take"), 1);

$pdf->SetFont('Arial', '', 11);


while($row = mysql_fetch_array($records)){
  $pdf->Row(array($row['ssh'],
  $row['provi'],
  $row['muni'],
  $row['impact'],
  $row['advice']), 1);
  }

$pdf->SetBorders(array('T', 'T', 'T', 'T', 'T'));
$pdf->Row(array('','','','',''), 1, false, 1);

$pdf->OutPut();
?>

Solution

  • You are trying to use negative X-Position value. I hope, that's why it's not working.

    do you want something like below:

    Example

    Use Limit to take Latest Record

    $sql="SELECT * FROM twothree ORDER BY ssh REGEXP '^[^A-Za-z0-9]' ASC, ssh DESC LIMIT 1";
    //echo $sql;
    $records=mysql_query($sql);
    if (mysql_num_rows($records)) {
     $fetch = mysql_fetch_assoc($records);
    }
    
    $pdf->Ln(10);
    $pdf->Cell(194, 4,"STORM SURGE: WARNING # " . $fetch['warning'], 0,0,'C');
    $pdf->Ln();
    $pdf->Cell(194, 4,"FOR: TYPHOON " . $fetch['typhoon'],0,0,'C');
    $pdf->Ln();
    $pdf->Cell(194,4,"ISSUED AT " . $fetch['date'],0,0,'C');
    $pdf->Ln();
    
    $pdf->Ln(20);
    

    Example

    $pdf->Cell(60, 4,"", 0,0,'C');
    $pdf->Cell(60, 4,"STORM SURGE: WARNING # :", 0,0,'L');
    $pdf->setX(125);    
    $pdf->Cell(60, 4,$fetch['warning'], 0,0,'L');
    $pdf->Ln();
    $pdf->Cell(60, 4,"", 0,0,'C');
    $pdf->Cell(60, 4,"FOR: TYPHOON :", 0,0,'L');
    $pdf->setX(100);    
    $pdf->Cell(60, 4,$fetch['typhoon'], 0,0,'L');
    $pdf->Ln();
    $pdf->Cell(60, 4,"", 0,0,'C');
    $pdf->Cell(60, 4,"ISSUED AT : ", 0,0,'L');
    $pdf->setX(100);    
    $pdf->Cell(60, 4,$fetch['date'], 0,0,'L');
    $pdf->Ln();
    

    Main Query

    $sql="SELECT * FROM twothree ORDER BY ssh REGEXP '^[^A-Za-z0-9]' ASC, ssh DESC";
    //echo $sql;
    $records=mysql_query($sql);