Я пытаюсь выполнить запрос MySQL, в котором он выбирает данные только из того, что пользователь создал во время этого сеанса. Например, пользователь записывает несколько сеансов активности и когда выполняется файл coast.php
, он отображает только сеансы, которые зарегистрированный пользователь записал для этого сеанса в выходном файле PDF.Проблема с получением только данных сеанса из запроса MySQL
Мне до сих пор удалось получить запрос в некоторой степени, но он все еще выбирает все из базы данных, и я не могу понять, как это сделать правильно. Любая помощь будет принята с благодарностью.
Вот мой код до сих пор ...
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
//============================================================+
?>
У вас есть // печать $ QueryString; прокомментировал ваш код. Запустите это и выполните SQL в своей базе данных и попробуйте заставить его работать там, большая часть того, что вы указали здесь, не имеет смысла для решения проблемы. Нам нужно будет увидеть, как записи вставляются в вашу базу данных или сами таблицы DB. Удачи! – DaOgre
Привет @DaOgre, я прокомментировал печать, так как мой класс TCPDF не работает с ним. Я вставил запрос в свою БД и отобразил все значения в БД с помощью «Coastline Coasteer». Спасибо за указатель – asharoo85
Вы можете добавить его в $ pdf-> writeHTML ($ html. $ Tbl_header. $ Tbl. $ Tbl_footer. $ QueryString); если вы хотите его просмотреть. Я бы предположил, что информация не сохраняется должным образом в user_session, так что вы просто получили пустое значение там, но вам нужно действительно посмотреть на значения в БД, чтобы подтвердить это. – DaOgre