Ich versuche, eine MySQL-Abfrage durchzuführen, in der es Daten nur von auswählt, was der Benutzer während dieser Sitzung hergestellt hat. Der Benutzer zeichnet beispielsweise eine Reihe von Aktivitätssitzungen auf, und wenn die Datei coast.php
ausgeführt wird, werden nur die Sitzungen angezeigt, die der angemeldete Benutzer für diese Sitzung in der PDF-Ausgabe aufgezeichnet hat.Problem, das nur Sitzungsdaten von der MySQL-Abfrage erhält
Ich habe es bisher geschafft, die Abfrage zu einem gewissen Grad zu arbeiten, aber es ist immer noch alles aus der Datenbank auswählen und ich kann nicht herausfinden, wie man das richtig macht. Jede Hilfe würde sehr geschätzt werden.
Hier ist mein Code so weit ...
coast.php
<?php
session_start();
require_once('../tcpdf/examples/lang/eng.php');
require_once('../tcpdf/tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Ash Williams');
$pdf->SetTitle('Coastline Coasteer Invoice');
$pdf->SetSubject('ASHLEY');
$pdf->SetKeywords('wILLIAMS');
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set default header data
$pdf->SetHeaderData("ibill logo.png", PDF_HEADER_LOGO_WIDTH, '',
'');
//Set header margin
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//set margins
$pdf->SetMargins(12, 35, 12, true);
//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set default font subsetting mode
$pdf->setFontSubsetting(true);
// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont('helvetica', '', 12, '', true);
// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage();
// Set some content to print
$html = '<style>
h1 {
letter-spacing: 1px;
font-family: times;
font-size: 30px;
text-align: center;
text-transform: uppercase;
text-decoration:underline;
}
h2 {
font-weight: normal;
text-align: left;
}
</style>
<h1>Invoice</h1>
<h2>Coastline Coasteer</h2>
<h3>22 Headland Road,</h3>
<h3>Newquay, Cornwall</h3>
<h3>TR7 1HN</h3>
<h3>Tel: 01637 879571</h3>';
$tbl_header = '<table border="1" cellpadding="6" cellspacing="4" nobr="true">';
$tbl_footer = '</table>';
$tbl ='';
$tbl .= '
<tr>
<th style="border: 3px solid black";>Type of Activity</th>
<th style="border: 3px solid black";>Employer</th>
<th style="border: 3px solid black";>Date</th>
<th style="border: 3px solid black";>Time</th>
<th style="border: 3px solid black";>Amount (GBP)</th>
</tr>
';
$con=mysqli_connect("localhost","root","****","****");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$tusername=$_SESSION["user_session"];
$queryString = "SELECT * FROM session_details, users WHERE employer = 'Coastline Coasteer' AND username = '" .$tusername. "';";
//print $queryString;
$result = mysqli_query($con,$queryString);
//if (!$result) {
// print 'failed';
//}
while($row = mysqli_fetch_array($result))
{
$typeofactivity = $row['typeofactivity'];
$employer = $row['employer'];
$date = $row['date'];
$time = $row['amount'];
$tbl .= '<tr>
<td>'.$row["typeofactivity"].'</td>
<td>'.$row["employer"].'</td>
<td>'.$row["date"].'</td>
<td>'.$row["time"].'</td>
<td>'.$row["amount"].'</td>
</tr>';
}
// Print text using writeHTMLCell()
$pdf->writeHTML($html . $tbl_header . $tbl . $tbl_footer, true, false, false, false, '');
// ---------------------------------------------------------
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
$pdf->Output('coastline_invoice.pdf', 'D');
//============================================================+
// END OF FILE
//============================================================+
?>
Sie haben // print $ querystring; Auskommentiert in deinem Code. Führen Sie das aus und führen Sie das SQL in Ihrer Datenbank aus, und versuchen Sie, es dort zu arbeiten. Das meiste, was Sie hier aufgelistet haben, ist nicht sinnvoll, um das Problem zu lösen. Wir müssten sehen, wie Datensätze in Ihre DB oder die DB-Tabellen selbst eingefügt werden. Viel Glück! – DaOgre
Hi @DaOgre, ich habe den Ausdruck auskommentiert, da meine TCPDF-Klasse nicht damit läuft. Ich habe die Abfrage in meine DB eingefügt und zeigt alle Werte in der DB mit 'Coastline Coasteer' an. Danke für den Zeiger – asharoo85
Sie könnten es zu $ pdf-> writeHTML hinzufügen ($ html. $ Tbl_header. $ Tbl. $ Tbl_footer. $ QueryString); wenn Sie es sehen wollen. Ich würde mir vorstellen, dass Informationen nicht ordnungsgemäß in user_session gespeichert werden, so dass Sie dort nur einen leeren Wert haben, aber Sie müssen sich die Werte in der DB ansehen, um dies zu bestätigen. – DaOgre